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