var userSchema = Schema({
email: {
type: String,
unique: true,
match: /^[a-z0-9._-]+@[a-z0-9.-]+.[a-z]{2,4}$/,
lowercase: true,
trim: true
},
nickname: {
type: String,
trim: true,
required: true
},
password: { type: String, required: true },
url: { type: String, trim: true, default: '' },
role: {
type: String,
enum: [ 'admin', 'reader' ],
default: 'reader'
},
about: { type: String, trim: true },
created: { type: Date, default: Date.now, required: true }
});
我想自定义这个更用户友好的东西,但我不知道如何设置一个自定义的错误消息为必需的,唯一的索引和枚举失败。我该怎么办?
我不认为您可以用所需的选项覆盖错误消息。如果您需要在模式中定制消息,而不是在保存时,我认为您最好的选择是编写一个自定义验证器,如下所示:
function createdValidator(created) {
return (created !== undefined && created !== null);
}
....
new Schema({created: { type: Date, default: Date.now, validate: [createdValidator, "custom error message"] } });
更新:
根据这里的文档,您可以像这样执行多个验证:
var multiple = [
{ validator: createdValidator, msg: "custom error message" },
{ validator: function(created){ return true;}, msg: "You'll never see me" }
];
new Schema({created: { type: Date, validate: multiple }});