我正在使用this passport-generate-auth模块,我正在努力理解整个事情。
所以,在我的User
模型中,我有
var User = {
schema: true,
attributes: {
username: {
type: 'string',
unique: true,
required: true
},
email: {
type: 'email',
unique: true,
required: true
},
password: {
type: 'string',
required: true,
minLength: 8
},
}
};
module.exports = User;
当我打电话
exports.register = function (req, res, next) {
var email = req.param('email')
, username = req.param('username')
, password = req.param('password');
User.create({
username: username
, email: email
, password: password
}, function (err, user) {
if (err) {
if (err.code === 'E_VALIDATION') {
if (err.invalidAttributes.email) {
req.flash('error', 'Error.Passport.Email.Exists');
} else {
req.flash('error', 'Error.Passport.User.Exists');
}
}
return next(err);
}
});
};
};
在提供数据库中已存在的username
和email
时,新条目存储在数据库中,而不是给我一个错误信息。
是不是User.create()
应该在模式属性规则中检查它们是否唯一,然后检查数据库中的记录是否有已存在的值的记录?