0

我使用来自 socket.io 和 nodejs 的 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')));

我该如何解决这个问题?

4

1 回答 1

2

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

如果您只使用静态路由应该是一个中间件问题。尝试删除软件包或快速中间件。它们应该在某种程度上是不相容的。

此外,正如其他人所要求的,发布一些回溯或代码,以便其他人可以更好地帮助您。

于 2013-09-30T10:43:13.967 回答