我遇到的情况是,我在模型中将用户名和电子邮件定义为唯一,但是每当我尝试在数据库中插入重复的用户名/电子邮件时,都会被插入。
这是我的模特
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);
}
});
答案 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."})
}