Mongoose await save

26,321

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);
}
Share:
26,321
Freddy Bonda
Author by

Freddy Bonda

Updated on July 23, 2022

Comments

  • Freddy Bonda
    Freddy Bonda almost 2 years

    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