gpt4 book ai didi

javascript - 将 Promise 与 mongoose 函数一起使用

转载 作者:行者123 更新时间:2023-12-02 21:02:44 25 4
gpt4 key购买 nike

我对 Promise 很陌生。我尝试将它们与 Mongoose 查询函数(例如 find()findById()) 一起使用。一切似乎都有效,但我不确定这是否是链接 then 的正确方法。使用 Promise 的目的是消除回调 hell ,但我链接 then 的方式看起来与回调非常相似。有没有更好的方法来编写这条路线?

router.get('/homehr/employees/new', middleware.isLoggedInAsHR, (req, res) => {
Department.find({})
.exec()
.then((allDepartments) => {
Employee.findById(req.user.employee.id)
.exec()
.then((foundEmployee) => {
res.render('hr/employees/new', {
departments: allDepartments,
employee: foundEmployee,
blogs: allBlogs
});
});
})
.catch((err) => {
console.log(err);
req.flash('error', err.message);
return res.redirect('back');
});
});

最佳答案

您的路线似乎不依赖于按顺序获取模型。所以你可以用更好的方式编写它,如下所示:

router.get('/homehr/employees/new', middleware.isLoggedInAsHR, async (req, res) => {
try{
const allDepartments = await Department.find({});
const foundEmployee = await Employee.findById(req.user.employee.id);
res.render('hr/employees/new', {
departments: allDepartments,
employee: foundEmployee,
blogs: allBlogs
});
}catch(err){
console.log(err);
req.flash('error', err.message);
return res.redirect('back');
}
)};

关于javascript - 将 Promise 与 mongoose 函数一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61304036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com