2015-07-02 3 views
1

Я пытаюсь добавить некоторые валидаторы в схему мангуста. Моя модель выглядит следующим образом:TypeError: Не удается прочитать свойство «путь» неопределенного в Mongoose 4.0.3

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var Usr = new Schema({ 
    _id: { type: String }, 
    email1: { type: String }, 
    password: { type: String }, 
    admin: { type: Boolean }, 
    firstName: { type: String }, 
    lastName: { type: String }, 
    hasCar: { type: Boolean }, 
    phone: { type: Number } 
}); 

Usr.schema.path('email1').validate(function (value) { 
    return /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/.test(value); 
}, 'Invalid email'); 

module.exports = mongoose.model('User', Usr); 

Но я получаю TypeError:

Usr.schema.path('email1').validate(function (value) { 
     ^
TypeError: Cannot read property 'path' of undefined 

Что я делаю неправильно?

ответ

1

Usr само по себе является объектом схемы. Итак:

Usr.path('email1').validate(function (value) { 
    return /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/.test(value); 
}, 'Invalid email'); 
+0

отлично, спасибо! – magneto

Смежные вопросы