【发布时间】:2013-01-02 15:22:24
【问题描述】:
我的用户模型有两个 validation 函数
User.schema.path('email').validate(function(value, respond) {
User.findOne({email: value}, function(err, user) {
if(err) throw err;
if(user) return respond(false);
respond(true);
});
}, 'EMAIL_EXISTS');
username 也一样
User.schema.path('username').validate(function(value, respond) {
User.findOne({username: value}, function(err, user) {
if(err) throw err;
if(user) return respond(false);
respond(true);
});
}, 'USERNAME_TAKEN');
它们以下列格式返回错误
{ message: 'Validation failed',
name: 'ValidationError',
errors:
{ username:
{ message: 'Validator "USERNAME_TAKEN" failed for path username',
name: 'ValidatorError',
path: 'username',
type: 'USERNAME_TAKEN' } } }
email 路径的错误类似。有没有比以下更聪明的方法来检查这些错误?
if (err && err.errors && err.errors.username) { ... }
这有点丑。
【问题讨论】: