Mongoose验证崩溃的应用程序

时间:2015-05-06 21:39:57

标签: mongodb express mongoose

我正在尝试使用mongoose在mongo中创建用户。用户创建成功但如果我省略了必需参数(以测试验证),整个应用程序崩溃并显示消息:

  

没有侦测到侦听,投掷。考虑添加一个错误监听器   你的联系。 ValidationError:用户验证失败

我使用快速路由器作为寄存器端点,代码如下:

router.route('/register')
.post(function(req, res) {

    // Create new user
    var user   = new User();
    user.name  = req.body.name;
    user.email = req.body.email;

    user.save(function(err) {
        if (err) res.send(err);
        res.json({ message: 'User created!' });
    });
});

我非常简单的用户架构如下:

// User schema
var UserSchema = new Schema({
    name: {
        type: String,
        required: true
    },
    email: {
        type: String,
        required: true
    }
});

当我删除所需的参数时,一切正常,但这显然不是解决方案。

当mongoose无法创建用户时,如何返回正确的验证消息?

1 个答案:

答案 0 :(得分:1)

你应该做

var user = new User({ name: req.body.name, email: req.body.email });
user.save(function(err) { ... });

通过这样做,您可以提供有关用户类创建的验证字段,该字段应该有效。