2017-12-31 173 views
0

Ich möchte Validierung mit einer Fehlermeldung für E-Mails, die eindeutig sein. dafür habe ich den Mungo-Unique-Validator verwendet.Mongoose eindeutige und benutzerdefinierte Validierung

Hier ist mein Modell

var mongoose = require('mongoose'); //V 3.6.1 
var uniqueValidator = require('mongoose-unique-validator'); 

// User Schema 
var UserSchema = mongoose.Schema({ 
    username: { 
     type: String, 
     required: true 
    }, 
    email: { 
     type: String, 
     index: true, 
     unique: true, 
     required: true, 
     uniqueCaseInsensitive: true 
    }, 
    password: { 
     type: String, 
     required: true 
    } 
}); 

UserSchema.plugin(uniqueValidator); 

Wenn ich versuche, eine E-Mail zu speichern, die bereits in db ist, und ich bekomme

ValidationError: User validation failed: email: Error, expected `email` to be unique. Value: `[email protected]` 
at ValidationError.inspect (C:\nodeapps\pps\node_modules\mongoose\lib\error\validation.js:57:23) 

Was ich brauche, um diesen Fehler in Validation Wrapp ist und Anzeige der Fehler im Formular beim Aufruf validieren oder speichern.

weiß jemand, wie es geht?

Antwort

0

Ich glaube, Sie User.save wie dies gerade anrufen:

let user = new User({ 
    username: 'username', 
    email: 'email', 
    password: 'password' 
}) 

user.save(function (error) { 
    if (error) { 
    console.log(error.message) 
    } 
}) 

Dann, wenn ein Fehler auftritt, während der Benutzer zu speichern, die Nachricht Feld die Fehlermeldung enthalten sollte.

+0

Ja! Ich habe Fehler in der Konsole, aber ich möchte sie anzeigen. so: var errors = req.validationErrors(); \t if (Fehler) { \t \t res.render ('Register', { \t \t \t Fehler: Fehler \t \t}); Ich muss diesen Fehler in ValidationError einschließen und den Fehler im Formular anzeigen – Liza

+0

Ich kaue nicht, wie man Fehler anzeigt. User.createUser (newUser, Funktion (err, user) { \t \t \t \t \t \t console.log (err); \t}); – Liza

Verwandte Themen