这就是我现在的表现。但试着看看是否有正确或另一种方式来做到这一点。
async function getmanual_vars(req, res,ajax){
var return_data = {};
let db = await mongo_client.connect(mongo_url);
let db_data = await db.collection('data').find({ created_by_user_id: req.cookies.user_id}).toArray();
// more codes inside //
res.json({ success: true});
}
router.post('/manual_vars', check_auth,function(req, res, next) {
getmanual_vars(req, res,0);
});
答案 0 :(得分:1)
您可以这样做:
async function getmanual_vars(req, res) {
try {
var return_data = {};
let db = await mongo_client.connect(mongo_url);
let db_data = await db.collection('data').find({
created_by_user_id: req.cookies.user_id
}).toArray();
// more codes inside //
res.json({ success: true});
} catch (error) {
res.status(500).json({ success: false, error: error });
}
}
router.post('/manual_vars', check_auth, getmanual_vars);
这应该抓住状态为500
的异步函数中可能出现的错误和异常。
由于这已经是接受req
和res
的函数,因此我们可以将函数本身传递给路由器,而不必在其周围创建包装器。