Mongoose await save

删除回忆录丶 提交于 2019-12-24 01:01:45

问题


In my Nodejs project I would just like to await a mongoose.save function before continuing with my code. The below example does not work, but can anyone help me with something that will work please.

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');
});

The current console.log order is:

  1. before save
  2. after save
  3. saved item

But I would like it to be:

  1. before save
  2. saved item
  3. after save

回答1:


Please change code with try and catch.

Also, check how to use 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);
}


来源:https://stackoverflow.com/questions/52832010/mongoose-await-save

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!