В моем проекте Nodejs я просто хотел бы await функцию mongoose.save, прежде чем продолжить свой код. Приведенный ниже пример не работает, но может ли кто-нибудь помочь мне с чем-то, что сработает, пожалуйста.
app.post('/api/CreateUser', async (req, res) => {
const newUser = new User({
'email': req.body.email,
'name': req.body.name
});
console.info('before save');
await newUser.save((err, userDoc) => {
if (err) return res.status(400).send(err);
console.info('saved item');
});
console.info('after save');
});
Текущий порядок console.info:
Но хотелось бы, чтобы это было:





Пожалуйста, измените код на try и catch.
Также проверьте, как использовать await.
try {
const newUser = new User({
'email': req.body.email,
'name': req.body.name
});
console.info('before save');
let saveUser = await newUser.save(); //when fail its goes to catch
console.info(saveUser); //when success it print.
console.info('after save');
} catch (err) {
console.info('err' + err);
res.status(500).send(err);
}
@IftekharDani Не могли бы вы объяснить, почему код OP не работает должным образом?
Чувак, спасибо! Я уже некоторое время борюсь с этим. Никогда на самом деле не использовал метод «попробуй / поймай»