唯一模式不起作用猫鼬

时间:2018-08-07 17:31:33

标签: node.js mongodb express mongoose

我遇到的情况是,我在模型中将用户名和电子邮件定义为唯一,但是每当我尝试在数据库中插入重复的用户名/电子邮件时,都会被插入。

这是我的模特

const userSchema = new Schema({
email: {
    type: String,
    required: true,
    unique:true
},
username: {
    type: String,
    required: true,
    unique:true
}})

这是我在其中插入数据的代码

        let user = new User(req.body);

    user.save((err, result) => {
        if (err) {
            res.json({ success: false });
        } else {
            res.json({ result, success: true });
            sendmail(req.body.email,req.body.username,verificationcode);
        }
    });

2 个答案:

答案 0 :(得分:0)

您的代码很好。因此,请尝试在模型中使用猫鼬唯一验证器

var uniqueValidator = require('mongoose-unique-validator');
userSchema.plugin(uniqueValidator);

或者尝试删除表,以便mongo重新创建它们

答案 1 :(得分:0)

我将查询用户的存在,然后使用if语句,如下所示:

User.findOne({email:req.body.email,username:req.body.username},(err, user)=>{
if(!user){ 
let newUser = new User bla bla bla 
}else{
res.json({message:"User already exists."})
}