我在node.js中提交表单后收到一条重定向错误消息,因此在将数据插入mongodb后,我收到一条错误消息“无法在发送后设置标题”。
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响应,但之后我收到了该错误消息。
请仔细阅读我的帖子并向我推荐一些解决方案。
答案 0 :(得分:0)
首先,如果您希望得到响应,请不要在循环中进行数据库调用。
此外,使用快递时,只有在您准备好向用户发送数据时才拨打res.send
或res.json
。
var friendslist = JSON.parse(JSON.stringify(req.body));
var friends = [];
for(var i=0; i<friendslist.length; i++){
var friend = friendslist[i]
friends.push({
"userid" : friend.userid,
"name" : friend.name,
"number" : friend.number,
"status" : friend.status,
"currentUserid" : friend.currentUserid
});
}
collection.insert(friends, function(err, docs) {
if (err) {
res.json({error : "database error"});
}
else {
collection.find().toArray(function(err, users) {
res.json(users);
});
}
});