pab*_*ezr 19 javascript mongoose mongodb express
我已经使用 .save() 和 .findOne() 回调几天了,就在今天我遇到了这些错误:
throw new MongooseError('Model.prototype.save() no longer accepts a callback')
MongooseError: Model.prototype.save() no longer accepts a callback
Run Code Online (Sandbox Code Playgroud)
和
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");
});
});
Run Code Online (Sandbox Code Playgroud)
这曾经对我有用,使用express和mongoose。请让我知道如何解决它。
小智 29
MongooseError:Model.find() 不再接受回调
由于回调函数从现在开始已被弃用。如果您将这些函数与回调一起使用,请使用 async/await 或在异步函数不适合您时使用 Promise。
app.get("/articles", async (req, res) => {
try {
const articles = await Article.find({ });
res.send(articles);
console.log(articles);
} catch (err) {
console.log(err);
}
});
Run Code Online (Sandbox Code Playgroud)
小智 19
// old way (deprecated)
Model.find(function(err, models){
if (err) {
console.log(err);
}else {
console.log(models);
}
});
// new way
Model.find()
.then(function (models) {
console.log(models);
})
.catch(function (err) {
console.log(err);
});
Run Code Online (Sandbox Code Playgroud)
小智 9
Mongoose 刚刚进行了新的更新,Mongoose 现在已经摆脱了回调。所以这意味着,现在而不是这样做
//Old way ( doesn't work anymore )
data.save((err, result) => {
if(!err) console.log(result);
})
Run Code Online (Sandbox Code Playgroud)
你应该这样做!
//New way ( use this in your projects )
let output;
(async () => {
output = await data.save();
})
console.log(output);
Run Code Online (Sandbox Code Playgroud)
这也适用于所有其他猫鼬回调
| 归档时间: |
|
| 查看次数: |
65194 次 |
| 最近记录: |