Mongoose {unique:true}验证器无法正常工作

时间:2014-06-02 05:59:10

标签: node.js mongodb express mongoose

我试图在我的测试应用程序中捕获mongodb 11000错误,当两个电子邮件都相同时,但每次将新创建的用户添加到数据库中时我都没有看到错误记录到控制台。我是mongodb的新手,一般表达堆栈,所以我可能会遗漏一些明显的东西。

我只在mongod中收到以下错误:

background addExistingToIndex exception E11000 duplicate key error index: database.users.$email_1  dup key: { : "asdf@gmail.com" }
2014-06-02T01:52:34.654-0400 [conn10] index build failed. spec: { v: 1, unique: true, key: { email: 1 }, name: "email_1", ns: "database.users", background: true } error: 11000 E11000 duplicate key error index: database.users.$email_1  dup key: { : "asdf@gmail.com" }

这是定义的架构:

//*****************************************
//Define User Schema
var userSchema = new mongoose.Schema({
    fullName: String,
    email: {type: String, unique:true},
    password: String,
    createdOn: Date
});
//Define User Model
mongoose.model('User',userSchema);
//*****************************************

以下是将其输入数据库的代码

exports.doRegistration = function(req,res){

    User.create({

        fullName: req.body.register.fullName,
        email: req.body.register.email,
        password: req.body.register.password,
        createdOn: Date.now()

    }, function(err, user){

        if(err){

            console.log(err);
                    if(err.code===11000)
                          res.redirect( '/error );

        }else{

            console.log('success');
        }

        res.redirect('/');

    });
}

0 个答案:

没有答案