mongodb Mongoose停止接受其某些函数的回调

wswtfjt7  于 2023-03-01  发布在  Go
关注(0)|答案(3)|浏览(1301)

我已经为.保存()和.findOne()使用回调函数好几天了,就在今天我遇到了这些错误:

throw new MongooseError('Model.prototype.save() no longer accepts a callback')

MongooseError: Model.prototype.save() no longer accepts a callback

以及
MongooseError: Model.findOne() no longer accepts a callback
考虑到回调在文档中仍然是可以接受的,至少对于.findOne()是这样,这真的很尴尬。

app.post("/register", (req, res) => {
    const newUser = new User({
        email: req.body.username,
        password: req.body.password
    });

    newUser.save((err) => {
        if (err) console.log(err)
        else res.render("secrets");
    });
});

这是我以前用的方法,使用express和mongoose。请告诉我如何解决它。

aiazj4mn

aiazj4mn1#

app.post("/register", function(req, res){
    const newUser = new User({
        email: req.body.email,
        password: req.body.password
    });

    newUser.save().then(()=>{
        res.render("secrets");
    }).catch((err)=>{
        console.log(err);
    })
});

希望它有帮助!

f4t66c6m

f4t66c6m2#

app.post("/login",function(req,res){
    const username = req.body.username;
    const password = req.body.password;

    User.findOne({email:username})
    .then((foundUser) => {
        if(foundUser){
            if(foundUser.password === password){
                res.render("secrets");
            }
        }
   })
   .catch((error) => {
       //When there are errors We handle them here

console.log(err);
       res.send(400, "Bad Request");
   });
      
});

这对我很有效,我也在做安吉拉于的网络开发训练营。
看起来现在必须使用=〉then和=〉catch进行处理

6rqinv9w

6rqinv9w3#

MongooseError:***Model.find()不再接受回调*因为回调函数从现在起已经过时。**如果您使用这些函数进行回调,请使用async/await或promises(如果异步函数不适合您)。

app.get("/articles", async (req, res) => { try {
  const articles = await Article.find({});
  res.send(articles);
  console.log(articles);
} catch (err) {
  console.log(err);}});

相关问题