2017-05-26 99 views
0

我想變換全部貓鼬模式錯誤。如何轉換貓鼬模式錯誤

比方說,我有一個UserSchema:

const UserSchema = new mongoose.Schema({ 
    email: { 
    type: String, 
    unique: true, 
    required: [true, 'E-Mail is required'] 
    }, 
    password: { 
    type: String, 
    required: [true, 'Password is required'] 
    } 
} 

如果我想嘗試保存而不電子郵件和密碼的用戶,我會得到如下回應:

{ 
    "errors": { 
    "password": { 
     "message": "Password is required", 
     "name": "ValidatorError", 
     "properties": { 
     "type": "required", 
     "message": "Password is required", 
     "path": "password" 
     }, 
     "kind": "required", 
     "path": "password" 
    }, 
    "email": { 
    // ... 
    } 
    }, 
    "_message": "User validation failed", 
    "name": "ValidationError" 
} 

我想改變這個錯誤響應全球爲我的所有模式,例如到

{ 
    errors: [ 
     { message: "Password is required", path: "password" } 
     // ... 
    ] 
} 

有沒有辦法將全局變換方法應用於所有模式錯誤? (我想避免手動轉換每個響應)

回答

0
var schema = new Schema({ 
    name: { 
    type: String, 
    required: true 
    } 
}); 
var Man= db.model('Man', schema); 

// This man has no name :(
var man = new Man(); 
man.save(function(error) { 
    assert.equal(error.errors['name'].message, 
    'Path `name` is required.'); 

    error = man.validateSync(); 
    assert.equal(error.errors['name'].message, 
    'Path `name` is required.'); 
}); 
+0

這並不能解決全局問題**。我想擁有一個攔截器,它可以在一個地方轉換所有的錯誤。 – mbppv