2011-09-10 36 views
5

Tôi đang cố gắng làm điều cổ điển để đảm bảo tên người dùng của người dùng không giống với mật khẩu của họ, trong Nodejs/Mongoose.Xác nhận hợp lệ nhiều thuộc tính lược đồ Mongoose?

Tôi đã nghĩ rằng nên sử dụng chức năng xác thực riêng biệt, nhưng tôi không thể tìm ra cách thực hiện.

Cho đến nay tôi đã sử dụng model code from Alex Young's Notepad tutorial. Anh ta tạo thuộc tính password ảo mà tôi đã sử dụng lại.

Tôi đã có xác nhận cơ bản như sau:

function validatePresenceOf(value) { 
    return value && value.length; 
} 

User = new Schema({ 
    'username': { 
     type: String, 
     validate: [ 
      validatePresenceOf, 'a username is required', 
     ], 
     index: { unique: true } 
    }, 
}); 

Làm thế nào tôi có thể cho phép một validator để truy cập các tài sản khác?

Trả lời

8

Bạn có thể gọi các thuộc tính bổ sung của lược đồ qua this.propertyToBeCalled.

schema.path('name').validate(function(v) { 
    if (v === this.password) { 
     return false; 
    } else { 
     return true; 
    } 
}, 'my error type'); 

Hoặc những thứ tương tự.

Các vấn đề liên quan