弃用警告:已弃用未处理的承诺拒绝

时间:2017-04-29 03:54:01

标签: javascript node.js mongodb express

我的代码出现此错误,我不知道如何修复它?

DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

到目前为止我的代码:

router.post('/users/*', (req, res) => {
  User.create(new User({
    email: req.body.identity.user_email,
    authUserId: req.body.identity.user_id
  }))
  res.json(console.log("User Created"))
})
router.get('/users/:id', (req, res, next) => {
  User.findOne({authUserId: req.params.id}, (err, userr) => {
    if(err) {
      return next(err);
    } else if (userr) {
      res.json(userr.email);
    } else {
      res.json(null)
    }
  });
});

有人可以帮助我摆脱这个错误。 Thnx提前! :)

1 个答案:

答案 0 :(得分:2)

我猜你的应用程序的入口点是app.js。因此,当您将error转发为return next(err);时,应该有人会抓住并处理它。

通常我会在侦听器函数 -

之前将处理程序放在app.js
// development error handler
// will print stacktrace
if (app.get('env') === 'development') {

  app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
        message: err.message,
        error: err
    });
  });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
        message: err.message,
        error: {}
    });
});