在我的Nodejs项目中,我想先await
一个mongoose.save函数,然后再继续执行我的代码。下面的示例不起作用,但是任何人都可以帮我解决一些问题。
app.post('/api/CreateUser', async (req, res) => {
const newUser = new User({
'email': req.body.email,
'name': req.body.name
});
console.log('before save');
await newUser.save((err, userDoc) => {
if (err) return res.status(400).send(err);
console.log('saved item');
});
console.log('after save');
});
当前console.log的顺序为:
但是我希望是这样
答案 0 :(得分:3)
请使用try
和catch
更改代码。
另外,请检查如何使用await
。
try {
const newUser = new User({
'email': req.body.email,
'name': req.body.name
});
console.log('before save');
let saveUser = await newUser.save(); //when fail its goes to catch
console.log(saveUser); //when success it print.
console.log('after save');
} catch (err) {
console.log('err' + err);
res.status(500).send(err);
}