快递错误:写完后

时间:2016-08-11 00:33:53

标签: javascript node.js express

我正在尝试编写这段代码的问题。出于某种原因,我得到标题中列出的错误。我很确定这是异步概念的问题。我该如何解决这个问题?

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));
        });
    }
});
});

1 个答案:

答案 0 :(得分:2)

您的find()列表(不在最后)null中很可能有一个项目。此时您将结束响应(res.end())。但是 null项之后的一个或多个项目 null,导致res.write()。这就是导致你的写作结束的原因。错误。确保在完成整个回复后才能致电res.end()