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)