【问题标题】:Mongoose validation crashing appMongoose 验证崩溃的应用程序
【发布时间】:2015-07-17 06:14:12
【问题描述】:

我正在尝试使用 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 创建用户失败时如何返回正确的验证信息?

【问题讨论】:

    标签: mongodb express mongoose


    【解决方案1】:

    你应该这样做

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

    通过这样做,您可以在创建用户类时提供经过验证的字段,这应该可以工作。

    【讨论】:

    • 感谢您的回复,我更新了创建用户以匹配您的语法,但错误仍然存​​在。
    • @nickspiel 我自己也遇到了这个错误。你有没有找到解决这个问题的方法?
    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 2019-12-20
    • 2018-06-23
    • 2021-10-03
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多