在Express中进行Mongoose验证失败后,如何向客户端返回错误消息

时间:2012-12-27 00:49:41

标签: node.js express mongoose

我有一个非常基本的POST路由,可以从给定的数据中创建一个新用户。

以下是我如何保存它:

app.post('/create', function(req, res){
    var firstUser = new models.User(req.body);
    firstUser.save();
});

我的Mongoose User架构有一些验证选项,可以使用。如果我传递了错误的数据,验证将失败,并且不会创建用户。

但是有一个问题:Mongoose的save()函数是异步的,那么如何让客户端现在验证失败呢?

后期将完成后期功能。

1 个答案:

答案 0 :(得分:6)

你应该看看Mongoose documentation。因为save方法是异步的,所以它将回调作为参数。这是您应该检查错误的地方。

app.post('/create', function(req, res){
    var firstUser = new models.User(req.body);
    firstUser.save(function (err) {
        if (err) {
            res.send(500, { error: 'Saving first user failed!' });
        } else {
            res.send({ success: 'Saved!' }); 
        }
    })
});