Node.Js在Heroku上崩溃
问题描述:
当我尝试在heroku上启动我的应用程序时,出现以下错误,但它在终端上运行良好,例如。 node server.js
。Node.Js在Heroku上崩溃
有没有人遇到过这个问题?
我使用下面的依赖关系:
"dependencies": {
"express": "~3.4.8",
"mongodb": "1.1.8",
"socket.io": "0.9.10",
"backbone": "~1.1.1",
"bootstrap": "0.0.2",
"node.js": "0.0.0"
},
"engines": {
"node": "0.8.4",
"npm": "1.1.49"
}
我得到了以下错误:在应用程序中出现错误,你的页面无法送达。请稍后重试。
这是我的heroku日志中的错误。
e3-a69c-3a07d518e05a fwd="50.157.213.109" dyno=web.1 connect=0ms service=3ms status=304
bytes=238
2014-02-17T14:35:35.140966+00:00 app[web.1]:
2014-02-17T14:35:35.141400+00:00 app[web.1]: http.js:691
2014-02-17T14:35:35.141652+00:00 app[web.1]: throw new Error('Can\'t set headers after they are sent.');
2014-02-17T14:35:35.141652+00:00 app[web.1]: ^
2014-02-17T14:35:35.144602+00:00 app[web.1]: Error: Can't set headers after they are sent.
2014-02-17T14:35:35.140544+00:00 app[web.1]: GET/304 2ms
2014-02-17T14:35:35.144602+00:00 app[web.1]: at SendStream.send (/app/node_modules/express/node_modules/send/lib/send.js:348:8)
2014-02-17T14:35:35.144602+00:00 app[web.1]: at /app/node_modules/express/node_modules/send/lib/send.js:323:10
2014-02-17T14:35:35.144602+00:00 app[web.1]: at Object.oncomplete (fs.js:107:15)
2014-02-17T14:35:35.140544+00:00 app[web.1]: GET/304 2ms
2014-02-17T14:35:35.144602+00:00 app[web.1]: at ServerResponse.OutgoingMessage.setHeader (http.js:691:11)
2014-02-17T14:35:35.144602+00:00 app[web.1]: at ServerResponse.res.setHeader (/app/node_modules/express/node_modules/connect/lib/patch.js:63:22)
2014-02-17T14:35:35.144602+00:00 app[web.1]: at SendStream.type (/app/node_modules/express/node_modules/send/lib/send.js:456:7)
2014-02-17T14:35:36.268983+00:00 heroku[web.1]: Process exited with status 8
2014-02-17T14:35:36.284405+00:00 heroku[web.1]: State changed from up to crashed
2014-02-17T14:35:36.286612+00:00 heroku[web.1]: State changed from crashed to starting
2014-02-17T14:35:38.836042+00:00 heroku[web.1]: Starting process with command `node serverwithanalytics.js`
2014-02-17T14:35:40.503178+00:00 app[web.1]: connect.multipart() will be removed in connect 3.0
2014-02-17T14:35:40.503366+00:00 app[web.1]: visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives
2014-02-17T14:35:40.504851+00:00 app[web.1]: connect.limit() will be removed in connect 3.0
2014-02-17T14:35:40.508557+00:00 app[web.1]: info: socket.io started
2014-02-17T14:35:40.514996+00:00 app[web.1]: Express server listening on port 44412
2014-02-17T14:35:43.280881+00:00 heroku[router]: at=info method=GET path=/css/bootstrap-responsive.css host=peaceful-waters-4142.herokuapp.com request_id=3a5ed1cc-1065-4e74-ba1d-91cb0b799e6c fwd="50.157.213.109" dyno=web.1 connect=1ms service=68ms status=304 bytes=239
2014-02-17T14:35:43.275568+00:00 app[web.1]: GET /css/bootstrap-responsive.css 304 42ms
2014-02-17T14:35:43.287066+00:00 app[web.1]:
2014-02-17T14:35:43.288991+00:00 app[web.1]: http.js:691
2014-02-17T14:35:43.286558+00:00 app[web.1]: GET /css/bootstrap-responsive.css 304 53ms
2014-02-17T14:35:43.295520+00:00 app[web.1]: at SendStream.type (/app/node_modules/express/node_modules/send/lib/send.js:456:7)
2014-02-17T14:35:43.291840+00:00 app[web.1]: throw new Error('Can\'t set headers after they are sent.');
2014-02-17T14:35:43.291840+00:00 app[web.1]: ^
2014-02-17T14:35:43.295520+00:00 app[web.1]: at ServerResponse.OutgoingMessage.setHeader (http.js:691:11)
2014-02-17T14:35:43.295520+00:00 app[web.1]: Error: Can't set headers after they are sent.
2014-02-17T14:35:43.295520+00:00 app[web.1]: at ServerResponse.res.setHeader (/app/node_modules/express/node_modules/connect/lib/patch.js:63:22)
2014-02-17T14:35:43.295520+00:00 app[web.1]: at SendStream.send (/app/node_modules/express/node_modules/send/lib/send.js:348:8)
2014-02-17T14:35:43.295520+00:00 app[web.1]: at /app/node_modules/express/node_modules/send/lib/send.js:323:10
2014-02-17T14:35:43.295520+00:00 app[web.1]: at Object.oncomplete (fs.js:107:15)
2014-02-17T14:35:45.002412+00:00 heroku[web.1]: State changed from up to crashed
2014-02-17T14:35:44.989848+00:00 heroku[web.1]: Process exited with status 8
答
您发送后无法设置标头。
这是某种代码逻辑错误,例如可能有代码行或循环在应用页面向客户端发送响应后继续进行。
查看http.js的第691行或显示代码以获得更具体的帮助。
你可以发送这个日志到服务台吗? – 2014-02-19 02:13:00
解决方案是重新安装,并简单地重置 – Tai