如何在Node.js应用程序中处理mongoose中的错误

时间:2017-12-06 21:26:41

标签: javascript node.js mongodb express

我正在开发一个带有express和mongoDb以及mongoose的node.js应用程序。该应用程序将用户保存在下面的代码中没有问题,但在此代码中,即使进程成功,也始终控制错误,并保存用户。

我正在尝试制作Flash消息和验证,但我无法继续解决此问题。

另外,我不确定我是否使用了正确的post方法(我应该在帖子中使用res.status(500).send('error'))吗?

 newUser.save().then(function (error) {
  if (error) {
    console.log('error') // always prints this 
  } else {
    console.log('success')
  }
})

完整代码

var User = require('../models/User')
var router = require('express').Router()

 router.route('/user/signup')
.get(function (request, response) {
  // render the form
  response.render('user/signup')
 })
 .post(function (request, response) {
  var username = request.body.name
  var password = request.body.password
  var newUser = new User({
  name: username,
  password: password
  })
  newUser.save().then(function (error) {
    if (error) {
    console.log('error')
  } else {
    console.log('success')
  }
 })
 response.redirect('/')
 })

1 个答案:

答案 0 :(得分:1)

我认为您希望将函数直接传递给save()作为回调

newUser.save(function (err, user) {
      if (err) ..
    })

根据您目前采用的方法,我认为您想要使用catch

newUser.save().then(function (user) }})
   .catch((err) => ...);

Source: mongoose docs