javascript - 仅在数据不存在时将数据添加到数据库(Node js)

标签 javascript node.js mongodb express

我正在尝试将新数据添加到数据库中,只有当它还不存在时。我要求用户输入名称,如果名称已经存在,他/她将无法输入相应的数据,并且会出现错误显示说它“已经存在”。 这就是我在做的-

app.post("/new",function(req,res){
    Model.find({"name":req.body.name},function(err,persons){
         if(err!=null)
            { req.flash("error","Already Exists");
              res.redirect("/new");}
         if(err==null)
            { Model.create(req.body.person,function(err,newPerson){
                    if(err){console.log("Error");}
                    else{
                    newPerson.name=req.user.name;
                    newPerson.id=req.user._id;
                    newPerson.save();
                    res.redirect("/");}

            });}
    });

});

但是当我使用它时,即使我输入了已经存在的数据,它仍然会将它添加到数据库中。 我正在使用 express、node js 和 mongodb

最佳答案

Model.findOne({"name":req.body.name},function(err,person){
    if(err){
        //err found
        res.send(err)
    }
    else if(person){
        // no error and also person exists
        req.flash("error","Already Exists");
        res.redirect("/new");
    }
    else{
        // no error and and person not found so create new one
        let newPerson = new Model({
            name : req.body.name,
            otherParams : req.body.otherParams 
        });
        newPerson.save(function(err){
            if(err){
                res.send('could not create new person');
            }
            else{
                res.send('person created successfully');

            }
        });
    }

});

关于javascript - 仅在数据不存在时将数据添加到数据库(Node js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43844159/

相关文章:

javascript - setTimeout 计时在第一个 .each() 元素上关闭

javascript - 为什么 req.route 显示以前的路线

javascript - 使用 Mocha 测试 Promise

node.js - 如何在 meteor 中使用 mongo 模式验证和 typescript ?

node.js - 如何在 Mongo 中查询?

json - 如何处理文档中json字段不一致的情况

javascript - mvc3 验证输入 'not-equal-to'

javascript - 多选下拉菜单在 asp.net 中不起作用

javascript - Shopify - 我可以从浏览器控制台访问 JSON 对象,但不能从主题文件访问

javascript - 从 Node.js 生成多个 phantomjs Worker 是否理想?