【问题标题】:unique schema not working mongoose独特的模式不起作用猫鼬
【发布时间】:2018-08-08 01:59:15
【问题描述】:

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

这是我的模型

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);
        }
    });

【问题讨论】:

  • 重启你的mongodb

标签: node.js mongodb express mongoose


【解决方案1】:

您的代码很好。所以尝试在你的模型中使用猫鼬唯一验证器

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

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

【讨论】:

    【解决方案2】:

    我会查询用户是否存在,然后使用如下 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."})
    }
    

    【讨论】:

      猜你喜欢
      • 2015-02-05
      • 2015-09-07
      • 2015-05-09
      • 1970-01-01
      • 1970-01-01
      • 2016-12-27
      • 2014-01-16
      • 2022-07-22
      • 1970-01-01
      相关资源
      最近更新 更多