2013-01-11 42 views
6

Tôi có đoạn mã sau đó xác nhận của tôi trường "múi giờ":Mongoose xác nhận schema không đồng bộ không hoạt động

orgSchema.path('timezone').validate(function(value) { 
    return Timezone.findOne({_id: value}, "_id", function (err, timezone) { return false; }); 
}, "Please provide a valid timezone"); 

Trường luôn trôi qua, ngay cả khi tôi thêm một "return false" trong hàm trong cùng. Tôi biết rằng tôi đang thiếu một cuộc gọi lại ở đâu đó - tôi sẽ đánh giá cao một số trợ giúp.

Trả lời

9

An asynchronous validator cần phải chấp nhận thông số thứ hai là gọi lại mà nó phải gọi để cung cấp kết quả boolean của quá trình xác thực.

orgSchema.path('timezone').validate(function(value, callback) { 
    return Timezone.findOne({_id: value}, "_id", function (err, timezone) { 
    callback(timezone != null); 
    }); 
}, "Please provide a valid timezone"); 
+0

Xin cảm ơn một lần nữa, JohnnyHK! –

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