0
我真的很難過,理解它爲什麼執行res.json()兩次。貓鼬當res json被調用時,它被執行兩次而不是一次
// GET - Get MY Applications
router.get('/myApplications', function(req, res) {
var taskid;
var app_length;
Application.find({ email: req.session.email}, function(err, application){
app_length = application.length;
var getMyTasks = [];
for(var i = 0; i < app_length; i++){
taskid = application[i].task_id;
Task.findOne({task_id:application[i].task_id}, function(err, result){
if(i = app_length - 1){
console.log("final");
res.json({getMyTasks});
console.log("after final");
}
else if(err){
return res.send(err);
}
else if(!result){
Application.findOneAndUpdate({$and:[{email:req.session.email, task_id:taskid}]},{$set:{status:1}},{new:true}, function(err, myapp){
getMyTasks.push(myapp);
});
}
else if(result){
getMyTasks.push(result);
}
});
}
});
});
通過執行兩次它給我的著名Error: Can't set headers after they are sent.
這是確切的錯誤:
final
after final
final
events.js:160
throw er; // Unhandled 'error' event
^
Error: Can't set headers after they are sent.
我們可以清楚地看到正在執行兩倍res.json。
這個錯誤是發生在那裏我有:
if (i = app.length - 1){}
jeeeez我怎麼錯過了。 – user3450754
這是怎麼沒有崩潰的應用程序? – Darkrum
這是,錯誤被拋出 –