我正在使用Node.js编写一个简单的应用程序。我没有使用框架(了解它是如何在“较低”级别工作)。
我正在尝试做什么:
当GET请求发送到'/ list'时,我使用MongoDB连接来执行find()。然后我想迭代每个返回的项目,并使用response.write(“
”+ myItem)显示它们。
问题是我需要在最后执行response.end(),并且我不知道“结束”的时间 - 因为我的所有response.write()语句都是使用回调执行的。
这是我的代码:
db.items.find({state: "free"}, function(err, myItems) {
if (err) {
console.log("There was an error executing the database query.");
response.end();
return;
}
else if (myItems){
myItems.forEach( function(myItem) {
res.write("<p>" + myItem.title + "</p>\n");
});
}
res.write("</div>");
res.end();
}
我觉得我错过了一种在这里使用回调的惯用方法......解决这个问题的方法是什么?
谢谢!
答案 0 :(得分:1)
这是正确的方法,你的end()将在你的回调结束时被调用,所以在你的foreach循环之后,该函数将继续并发送end()方法。 或许我错过了你的问题。但我认为不是。