具有唯一属性的模型正在创建两次

时间:2015-06-10 23:35:04

标签: node.js sails.js passport.js sails-mongo

我正在使用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);
            }
        });
    };
};

在提供数据库中已存在的usernameemail时,新条目存储在数据库中,而不是给我一个错误信息。

是不是User.create()应该在模式属性规则中检查它们是否唯一,然后检查数据库中的记录是否有已存在的值的记录?

0 个答案:

没有答案