Node.js 错误';Can';t在发送标题后设置标题';只有在Cloud9上

Node.js 错误';Can';t在发送标题后设置标题';只有在Cloud9上,node.js,express,socket.io,cloud9-ide,Node.js,Express,Socket.io,Cloud9 Ide,在Cloud9 ide上同时使用Express和socket.io时,我遇到以下错误: http.js:707 throw new Error('Can\'t set headers after they are sent.'); ^ Error: Can't set headers after they are sent. at ServerResponse.OutgoingMessage.setHeader (http.js:707:11) at ServerResp

在Cloud9 ide上同时使用Express和socket.io时,我遇到以下错误:

http.js:707 throw new Error('Can\'t set headers after they are sent.'); ^ Error: Can't set headers after they are sent. at ServerResponse.OutgoingMessage.setHeader (http.js:707:11) at ServerResponse.res.setHeader (/var/lib/stickshift/523075494382ec51c3000001/app-root/data/610464/node_modules/express/node_modules/connect/lib/patch.js:59:22) at next (/var/lib/stickshift/523075494382ec51c3000001/app-root/data/610464/node_modules/express/node_modules/connect/lib/proto.js:153:13) at Function.app.handle (/var/lib/stickshift/523075494382ec51c3000001/app-root/data/610464/node_modules/express/node_modules/connect/lib/proto.js:198:3) at Server.app (/var/lib/stickshift/523075494382ec51c3000001/app-root/data/610464/node_modules/express/node_modules/connect/lib/connect.js:65:37) at Manager.handleRequest (/var/lib/stickshift/523075494382ec51c3000001/app-root/data/610464/node_modules/socket.io/lib/manager.js:564:28) at Server. (/var/lib/stickshift/523075494382ec51c3000001/app-root/data/610464/node_modules/socket.io/lib/manager.js:118:10) at Server.EventEmitter.emit (events.js:117:20) at HTTPParser.parser.onIncoming (http.js:2056:12) at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:120:23) 我正在使用node:“0.10.x”、socket.io:“0.9.14”和express:“3.x”。此错误仅在Cloud9IDE上出现。在本地主机上运行良好。
请帮忙。

我遇到了完全相同的问题。虽然这不是一个好的解决方案,但将Express恢复到3.1.0版为我解决了这个问题。从高层次上看,最新版本的Express和Socket.io不能很好地配合使用

还原后我使用的版本有:

节点:0.10.x

Socket.io:0.9.16


Express:3.1.0

对我来说效果很好:在发送响应后尝试写入或修改响应头时会发生这种情况。@fardjad,我在server.js和package.json文件中有与您相同的代码,但我仍然收到此错误。您正在使用哪个节点版本?当我尝试在brower中访问应用程序时,我得到了输出“Hello World”,但之后出现了错误,您可以在cloud9 ide的输出控制台中看到该错误。
process。我的c9工作区中的版本是
v0.10.15
var express = require('express');
var app = express()
  , http = require('http')
  , server = http.createServer(app)
  , io = require('socket.io').listen(server);


server.listen(process.env.PORT, process.env.IP);

app.get('/', function(req,res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.write('Hello World\n');
})