Express 在mongoose.js中使用async/await
正在寻找使用async/await而不是使用嵌套回调方法重写这两个查询的帮助Express 在mongoose.js中使用async/await,express,mongoose,async-await,Express,Mongoose,Async Await,正在寻找使用async/await而不是使用嵌套回调方法重写这两个查询的帮助 exports.post_edit_get = function(req, res, next) { var id = req.params.id; if (mongoose.Types.ObjectId.isValid(id)){ POST.findById(id, function (err, doc){ if (err) { return next(err)
exports.post_edit_get = function(req, res, next) {
var id = req.params.id;
if (mongoose.Types.ObjectId.isValid(id)){
POST.findById(id, function (err, doc){
if (err) { return next(err); }
playerQuery.exec(function (err, players){
if (err) { return next(err); }
res.render('posts/posts_admin', { title: pageTitle, formData: doc, players: players });
});
});
}else{
res.send("Invalid ID");
};
};
给你
const { isValid } = mongoose.Types.ObjectId
exports.post_edit_get = async function(req, res, next) {
var { id } = req.params;
if (!isValid(id)){
return res.send("Invalid ID");
}
try {
const post = await POST.findById(id)
const players = await playerQuery.exec()
res.render('posts/posts_admin', {
title: pageTitle,
formData: doc,
players: players
})
} catch (err) {
return next(err)
}
}
如果你想在路由处理程序级别摆脱这些try/catch,你需要看看这篇文章 给你
const { isValid } = mongoose.Types.ObjectId
exports.post_edit_get = async function(req, res, next) {
var { id } = req.params;
if (!isValid(id)){
return res.send("Invalid ID");
}
try {
const post = await POST.findById(id)
const players = await playerQuery.exec()
res.render('posts/posts_admin', {
title: pageTitle,
formData: doc,
players: players
})
} catch (err) {
return next(err)
}
}
如果你想在路由处理程序级别摆脱这些try/catch,你需要看看这篇文章 多谢各位。我要测试一下!非常感谢。我要测试一下!