Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果不刷新,则不能进行多个插入_Javascript_Angularjs_Node.js_Mongodb - Fatal编程技术网

Javascript 如果不刷新,则不能进行多个插入

Javascript 如果不刷新,则不能进行多个插入,javascript,angularjs,node.js,mongodb,Javascript,Angularjs,Node.js,Mongodb,因此,我有一个非常基本的应用程序,使用平均堆栈。我正在提交表单数据并通过节点插入mongoLab,但由于某些原因,我无法在不刷新的情况下发送两批数据。如果我尝试发送两批不同的数据,我会得到一个重复密钥错误MongoError:insertDocument::由::11000 E11000重复密钥错误引起 我对这一点相当陌生,所以我不确定发生了什么。我知道Mongo不允许两个相同的字段为空,但所有数据都在更改,并在提交时进行了说明。这是我的密码: 棱角的 节点API 模式 我需要查看mongo表的

因此,我有一个非常基本的应用程序,使用平均堆栈。我正在提交表单数据并通过节点插入mongoLab,但由于某些原因,我无法在不刷新的情况下发送两批数据。如果我尝试发送两批不同的数据,我会得到一个重复密钥错误MongoError:insertDocument::由::11000 E11000重复密钥错误引起

我对这一点相当陌生,所以我不确定发生了什么。我知道Mongo不允许两个相同的字段为空,但所有数据都在更改,并在提交时进行了说明。这是我的密码:

棱角的

节点API

模式


我需要查看mongo表的模型模式,但这可能是您的问题:

transaction["UserID"] = 2;
由于您硬编码的db值应该是唯一的,因此会导致重复密钥问题

请为您的mongo表发布您的模型定义,以便我可以详细说明


编辑:也请发布req.body值

这可能与您没有返回任何响应有关。当api失败且未命中响应时,我遇到了节点挂起的问题。尝试在API中添加res.json{message:'success'}或其他内容。您的代码不会显示日期和时间是如何填充的。你能添加那个代码以防它可能相关吗?日期和时间在上面。@我有一个随数据一起发送的响应也被发送到我的数据库,我只是不包括它,因为我认为它不相关。我已经包括在上面了,你能展示一下整个角度控制器的代码吗?在您第二次调用之前,可能没有将某些内容重置为新值?newTrans=req.body输出:{name:'Jake',location:'Jasons',cost:'5'}到目前为止,该UserID字段不是唯一的。这仍然是我正在研究的东西,但唯一真正独特的字段是mongo生成的_id。尝试完全删除UserID来测试非常奇怪的人。我有点困惑。我得坐下来好好讨论一下。还需要查看所有涉及的代码,我可以说的是,开始删除键,直到获得成功的结果。您是否能够通过mongo shell将文档插入事务表?
app.post('/api/transactions', parseUrlencoded, function(req, res){
...
  var transaction = {   };
var date = new Date();
var dd = date.getDate();
var mm = date.getMonth() + 1; //January is 0
var yy = date.getFullYear();

if (dd<10) {
    dd = "0" + dd;
}

if (mm<10) {
    mm = "0" + mm;
}

var HH = date.getHours();
var MM = date.getMinutes();
var timeHalf;


if (HH > 12) {
    timeHalf = "pm";
    HH = HH - 12;
} else {
    timeHalf = "am";
}

if (MM < 10) {
    MM = "0" + MM;
} else {
    MM=MM;
}

  date = yy + "-" + mm + "-" + dd;
  time = HH + ":" + MM + timeHalf;

  var newTrans = req.body;
  transaction["transDate"] = date
  transaction["transTime"] = time;  
  transaction["directObject"] = newTrans.name;
  transaction["transAmount"] = newTrans.cost;
  transaction["transType"] = "credit";
  transaction["transLocale"] = newTrans.location;    
  transaction["UserID"] = 2;


  var transColl = db.collection("transactions");
  transColl.insert(transaction, function(err, result){
    if (err) throw err;
    res.status(200).json(result); //sending result after insert

  });

console.log(newTrans);
{
"_id": "id",
"Date": "transDate",
"Time": "transTime",
"Recipient": "directObject",
"Type": "transType",
"Location": "transLocale",
"Verifier": "UserID"
}
transaction["UserID"] = 2;