我想添加带有错误消息的验证,以确保电子邮件是唯一的。因为我使用了插入的mongoose-unique-validator。
这是我的模特
var mongoose = require('mongoose'); //V 3.6.1
var uniqueValidator = require('mongoose-unique-validator');
// User Schema
var UserSchema = mongoose.Schema({
username: {
type: String,
required: true
},
email: {
type: String,
index: true,
unique: true,
required: true,
uniqueCaseInsensitive: true
},
password: {
type: String,
required: true
}
});
UserSchema.plugin(uniqueValidator);
如果我尝试保存已经在db中的电子邮件,我就会
ValidationError: User validation failed: email: Error, expected `email` to be unique. Value: `xx.xxx@xx.com`
at ValidationError.inspect (C:\nodeapps\pps\node_modules\mongoose\lib\error\validation.js:57:23)
我需要将此错误包装到ValidationError中,并在调用validate或save时显示表单中的错误。
有谁知道怎么做?
答案 0 :(得分:0)
我认为您可以像这样调用User.save:
let user = new User({
username: 'username',
email: 'email',
password: 'password'
})
user.save(function (error) {
if (error) {
console.log(error.message)
}
})
如果在保存用户时发生任何错误,消息字段应包含错误消息。