Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 猫鼬等待拯救_Node.js_Asynchronous_Mongoose_Promise_Async Await - Fatal编程技术网

Node.js 猫鼬等待拯救

Node.js 猫鼬等待拯救,node.js,asynchronous,mongoose,promise,async-await,Node.js,Asynchronous,Mongoose,Promise,Async Await,在我的Nodejs项目中,我只想在继续编写代码之前等待mongoose.save函数。下面的例子不起作用,但是有人能帮我做些有用的事情吗 app.post('/api/CreateUser', async (req, res) => { const newUser = new User({ 'email': req.body.email, 'name': req.body.name }); console.log('before sa

在我的Nodejs项目中,我只想在继续编写代码之前等待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顺序为:

  • 保存前
  • 保存后
  • 保存的项目
  • 但我希望它是:

  • 保存前
  • 保存的项目
  • 保存后

  • 请使用
    try
    catch
    更改代码

    另外,请检查如何使用
    wait

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

    伙计,谢谢你!我已经和这些东西斗争了一段时间了。从来没有真正使用过try/catch的东西