NODEJS - 发送后无法设置标头

时间:2016-04-03 21:43:00

标签: node.js http events callback header

我有功能,在&data;数据编译时执行。事件火灾,看起来像他的:

eventEmitter.on('dataCompiled', function () {
        json = JSON.stringify({
          conversations: convs
        });
        res.json(json).end();
        return;
      });

但是当我刷新页面时,我收到错误

Error: Can't set headers after they are sent.

3 个答案:

答案 0 :(得分:1)

最后想通了,需要将json直接发送到end函数,所以它看起来像那样:

res.end(json);

答案 1 :(得分:0)

如果我没有弄错的话,你不需要字符串化并结束对res.json的调用:

eventEmitter.on('dataCompiled', function () {
    return res.json({
        conversations: convs
    });
});

答案 2 :(得分:0)

您确定在此次通话后没有发送更多数据吗?您不应该使用res.end()http://expressjs.com/en/4x/api.html#res.end

如果您的代码中有另一个地方您正在向res发送更多数据,则会提供您正在接收的错误消息,res.end并未解决根本问题。