Mongoose报错:Model.create()不再支持回调函数,如何改用async/await?
解决Mongoose
Model.create() 不支持回调的问题:改用async/await实现 你遇到的错误是因为新版Mongoose已移除create()方法对回调函数的支持,必须改用Promise风格调用,async/await是最简洁的实现方式。
修改后的完整代码
app.post('/contactForm', async (req, res) => { try { // 用await等待create操作完成,获取创建后的文档 const newContact = await Contact.create({ name: req.body.name, phone: req.body.phone }); console.log("*******", newContact); res.redirect('back'); } catch (err) { // 捕获创建过程中的错误 console.log(err, 'error in connecting'); res.redirect('back'); } });
关键改动说明
- 将Express路由的处理函数标记为
async,这是使用await的前提 - 用
try/catch块替代原回调中的错误判断逻辑:try块执行正常创建流程,catch块捕获并处理错误 await会暂停函数执行,直到Contact.create()返回的Promise完成,直接拿到创建好的联系人文档- 错误处理部分可根据业务需求调整,比如返回500状态码或错误提示页面,这里保留了和原代码一致的页面跳转逻辑
内容的提问来源于stack exchange,提问作者Ganesh Nanhe
相关产品推荐
相关产品推荐

