MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Benutzerdefinierte Fehlermeldungen mit Mongoose

Wird ein eindeutiger Parameter für benutzerdefinierte Nachrichten nicht unterstützt?

Eindeutigkeit in Mongoose ist kein Validierungsparameter (wie required ); Es weist Mongoose an, einen eindeutigen Index in MongoDB für dieses Feld zu erstellen.

Die Eindeutigkeitsbeschränkung wird vollständig auf dem MongoDB-Server behandelt. Wenn Sie ein Dokument mit einem doppelten Schlüssel hinzufügen, gibt der MongoDB-Server den angezeigten Fehler zurück (E11000... ).

Sie müssen diese Fehler selbst behandeln, wenn Sie benutzerdefinierte Fehlermeldungen erstellen möchten. Die Mongoose-Dokumentation ("Error Handling Middleware" ) bietet Ihnen ein Beispiel zum Erstellen einer benutzerdefinierten Fehlerbehandlung:

emailVerificationTokenSchema.post('save', function(error, doc, next) {
  if (error.name === 'MongoError' && error.code === 11000) {
    next(new Error('email must be unique'));
  } else {
    next(error);
  }
});

(obwohl dies Ihnen nicht das spezifische Feld liefert, für das die Eindeutigkeitsbeschränkung fehlgeschlagen ist)