2017-12-31 236 views
0

고유 한 전자 메일에 대한 오류 메시지와 함께 유효성 검사를 추가하고 싶습니다. 그 때문에 나는 ponging mongoose-unique-validator를 사용했습니다. 제가 DB에 이미있는 이메일을 저장하려고하면 다음 몽구스 고유의 사용자 정의 유효성 확인

내 모델

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); 

이고, 나는 내가 필요로 무엇

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) 

이 ValidationError 표시로이 오류를 wrapp하는 것입니다 수 유효성 검사를 호출하거나 저장할 때 양식의 오류.

누구나 어떻게 할 수 있는지 알고 있습니까?

답변

0

나는 그냥 같이 User.save를 호출 할 수 있습니다 생각 : 사용자를 저장하는 동안 오류가 발생하면

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

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

는 다음, 메시지 필드는 오류 메시지를 포함해야합니다.

+0

예! 콘솔에 오류가 있지만 표시하려고합니다. 이렇게 : var errors = req.validationErrors(); \t 경우 (에러) { \t \t res.render ('등록'{ \t \t \t 오류 : 오류 \t \t}); 이 오류를 ValidationError에 래핑하고 양식에 오류를 표시해야합니다. – Liza

+0

오류를 표시하는 방법을 알려지지 않았습니다. User.createUser (NEWUSER 함수 (ERR, 사용자) { \t \t \t \t \t \t CONSOLE.LOG (ERR) \t}); – Liza