0
在node.js中提交表單後,我收到一個重定向錯誤消息,因此在將數據插入到mongodb後,我收到一條錯誤消息「無法設置他們發送後的標題「。Node.js重定向錯誤:發送後無法設置標題
var friendslist = JSON.parse(JSON.stringify(req.body));
for(var i=0; i<friendslist.length; i++){
var userid = friendslist[i];
var name = friendslist[i];
var number = friendslist[i];
var status = friendslist[i];
var currentUserid = friendslist[i];
var friends = [{"userid" : userid.name,
"name" : name.name,
"number" : number.number,
"status" : status.status,
"currentUserid" : currentUserid.currentUserid}];
collection.insert(friends, function(err, docs) {
if (err) {
res.json({error : "database error"});
}
else {
collection.find().toArray(function(err, users) {
res.json(users);
});
}
});
}
所以在插入所有數據到mongodb後,我發送一個json響應給用戶,但在那之後,我得到了這個錯誤信息。
請通過我的帖子,並建議我一些解決方案。
我猜這還不是全部的話,在什麼地方'res.json'你有一些正在輸出內容,如'res.send','res.render'等什麼是可能發生的是,你發送了一些東西,然後你嘗試發送'json',它試圖設置某些標題,但是在內容已經發送之後它不能設置標題。 – adeneo
您正在循環運行'collection.insert'代碼。一旦完成第一次插入,響應被髮送到客戶端,對於第二次迭代,將沒有「下行鏈路」連接,因爲它已經在第一次迭代中完成。您必須插入所有集合,然後在完成操作後調用'res.json'封裝'promise'並調用'promise.all'。 – Nirus