2017-05-26 2 views
0

Ich möchte alle Mungo-Schema-Fehler transformieren.Wie Mungo Schema-Fehler zu transformieren

Sagen wir, ich habe eine 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'] 
    } 
} 

Wenn ich würde versuchen, einen Benutzer ohne E-Mail und Passwort zu speichern, würde ich folgende Antwort erhalten:

{ 
    "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" 
} 

Ich mag würde verwandeln Diese Fehlerantwort global für alle meine Schemas, zum Beispiel zu

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

Gibt es eine Möglichkeit, eine Transformationsmethode global auf alle Schema-Fehler anzuwenden? (Ich möchte vermeiden, jede Antwort manuell zu transformieren)

Antwort

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

Dies löst das Problem nicht ** global **. Ich hätte gerne etwas wie einen Interceptor, der alle Fehler an einem Ort transformieren kann. – mbppv

Verwandte Themen