我确定问题出在密码验证器上,因为如果我将其注释掉,那么文档就会被插入。此外,如果我输入有效的密码,一切正常。这是我的整个UserSchema
Object.prototype
我遇到的这个问题是,而不是我的自定义错误消息
var UserSchema = new Schema({
firstName: String,
lastName: String,
email: {
type: String,
unique: true,
match: /.+\@.+\..+/
},
website: {
type: String,
set: urlModifier
},
username: {
type: String,
trim: true,
required: true,
unique: true
},
password: {
type: String,
validate: [
function(password) {
return password.length >= 6;
},
'Password should be longer'
]
},
createdAt: {
type: Date,
default: Date.now
},
role: {
type: String,
enum: ['admin', 'owner', 'user']
}
});
Mongoose版本是^ 4.05
不确定这是否是一个错误,API中的某些内容发生了变化,或者我做错了什么。
答案 0 :(得分:0)
在我正在学习的特定教程中没有提到这一点。
http://mongoosejs.com/docs/validation.html
自定义错误消息在返回到控制器中的save(err)函数的验证错误对象中可用为错误。
基本
user.save(function(err){ if(错误){ 返回下一个(错误); } else { res.json(用户); } });
将返回默认错误消息“用户验证失败”
此
user.save(function(err) {
if(err) {
console.log(err.errors.password.message);
return next(err);
} else {
res.json(user);
}
});
将返回自定义错误消息