抛出新错误('在发送后无法设置标头。');

时间:2013-09-30 09:32:01

标签: javascript node.js websocket socket.io

我使用socket.io和nodejs with express。我有这个错误:

throw new Error('Can\'t set headers after they are sent.');

我使用

  "dependencies": {
    "express": "~3.3.6",
    "socket.io": "0.9.16",
    "jade": "~0.35.0",
    "less-middleware": "~0.1.12",
    "redis": "~0.8.4",
    "connect-redis": "~1.4.5",
    "longjohn": "~0.2.1",
    "mongoose": "~3.6.20"

app.use('/static', express.static(path.join(__dirname, 'public')));

我如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

发送后,您正在设置http响应的标头。根据我的经验,这通常意味着您在同一请求中回复两次。或者,在您的情况下,可能是不正确的中间件订单。

如果您只使用静态路由应该是中间件问题。尝试删除包或表达中间件。他们应该在某种程度上不相容。

另外,正如其他人所问,发布一些追溯或代码,以便其他人可以更好地帮助你。