2013-01-04 17 views
0
var userSchema = Schema({ 
    email: { 
    type: String, 
    unique: true, 
    match: /^[a-z0-9._-][email protected][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 } 
}); 

我想用一些更友好的用戶來定製它,但是我不知道如何設置自定義錯誤消息所需的唯一索引和枚舉失敗。我能怎麼做?MongooseJs:如何爲所需的唯一索引和枚舉失敗設置自定義錯誤消息

回答

2

我不認爲你可以用必要的選項覆蓋錯誤消息。如果您需要在架構自定義消息,而不是在的點保存,我認爲最好的方法是寫一個自定義的驗證,如:

function createdValidator(created) { 
    return (created !== undefined && created !== null); 
} 

.... 

new Schema({created: { type: Date, default: Date.now, validate: [createdValidator, "custom error message"] } }); 

更新:

根據文檔here,你可以做多個驗證這樣的:

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 }}); 
+0

如何多隻會驗證? – Zhineng

+0

是的,有一些關於做多個驗證的文檔,我會更新我的答案,以便可以格式化。 – Adam

+0

非常感謝〜 – Zhineng

相關問題