我正在尝试使用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无法创建用户时,如何返回正确的验证消息?
答案 0 :(得分:1)
你应该做
var user = new User({ name: req.body.name, email: req.body.email });
user.save(function(err) { ... });
通过这样做,您可以提供有关用户类创建的验证字段,该字段应该有效。