我正在尝试编写这段代码的问题。出于某种原因,我得到标题中列出的错误。我很确定这是异步概念的问题。我该如何解决这个问题?
pokeRouter.get('/sightings/:value([a-z]+)', function (req, res) {
var test = {};
pokemon.find().each(function(err, item) {
if (item == null) {
res.end();
} else if ((req.params.value == item.type1) || (req.params.value == item.type2)) {
sightings.find({pokedex_id: item._id}).toArray(function(err, docs) {
if (docs == null) {
return null;
}
res.write(JSON.stringify(docs));
});
}
});
});
答案 0 :(得分:2)
您的find()
列表(不在最后)null
中很可能有一个项目。此时您将结束响应(res.end()
)。但是 null
项之后的一个或多个项目不 null
,导致res.write()
。这就是导致你的写作结束的原因。错误。确保在完成整个回复后才能致电res.end()
。