【问题标题】:multiple insert to mongoose多次插入猫鼬
【发布时间】:2017-05-03 21:53:16
【问题描述】:

我在服务器端使用 node js,在客户端使用 angular 和 html。

我已在服务器端向猫鼬插入数据。当我在同一页面上并想向 mongoose 插入新数据时,我必须再次重新启动服务器才能使其正常工作。

如何在代码中编写它以重新启动它?或者是否有其他方法可以清除我之前的请求?

  var savePersonal = new personal({
                email : myemail,
                Tags : mytags,
                Title: request.body.Title,
                Info: request.body.Info,
                Category: request.body.Category,
                file: "none",
                Recommendation:request.body.Recommendation,
                myDate:tempDate
              });
              savePersonal.save(function(error, result) {

                if (error) {
                  console.error(error);
                } else {
                  console.log("save");
                  request = "";
                  response.redirect('http://localhost:8080/getPrivateData.html');
                }
          })

【问题讨论】:

  • 显示你的代码?
  • @Alex 当我在有插入按钮的页面上再次按下 - 服务器卡住了
  • 如果问题出在上面的代码中,我猜是重定向的问题,尝试重定向到路由而不是 html 页面 for ex (response.redirect('/home'))

标签: javascript angularjs node.js mongodb


【解决方案1】:

如果不想在 db 中创建新文档,则必须使用 update 方法,例如:

var mongoose = require('mongoose');
var personal = mongoose.models.personal;

personal.find({}, function(err, users){
    if(err) throw err;

    var data = {
                email : myemail,
                Tags : mytags,
                Title: request.body.Title,
                Info: request.body.Info,
                Category: request.body.Category,
                file: "none",
                Recommendation:request.body.Recommendation,
                myDate:tempDate
              };

    if(users.length)
       personal.create(data, function(err, results){...});
    else
       personal.update({_id: users[0]._id}, data, function(err, results){...});
})

这是非常粗略的代码,但主要思想是: 1) 检查集合为空 2)如果它是空的使用保存/创建 3)如果它不是空的使用更新,但更新你必须知道文档的_id。我使用第一个元素的 id(users[0]._id)。

【讨论】:

  • 嘿!感谢您的回答!我确实想创建一条新线路 - 它只是不允许我
猜你喜欢
  • 1970-01-01
  • 2014-07-15
  • 1970-01-01
  • 2013-05-19
  • 2019-10-26
  • 2020-02-16
  • 2017-04-09
  • 1970-01-01
  • 2021-03-10
相关资源
最近更新 更多