Node app 在本地运行,但在 heroku (process.env.PORT set) 上崩溃



我的存储库中有这个版本的博客:https://github.com/pandrei/pandrei_test/tree/master/pandrei-blog

(随意克隆和测试它)

作为本教程的结果:

http://blog.davydewaele.be/node-powered-git-blog-with-wheat

我在本地测试了它,它运行正常,但是它在 Heroku 上崩溃了。

希罗库日志:

2013-10-24T20:23:55.610646+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=GET path=/ host=pandrei-blog.herokuapp.com fwd="---.---.---.---" dyno=web.1 connect=0ms service=25ms status=503 bytes=0
2013-10-24T20:23:55.590168+00:00 app[web.1]: path.exists is now called `fs.exists`.
2013-10-24T20:23:55.601900+00:00 app[web.1]:       ^
2013-10-24T20:23:55.601882+00:00 app[web.1]:       callback(err);
2013-10-24T20:23:55.605427+00:00 app[web.1]:     at ChildProcess.<anonymous> (/app/node_modules/wheat/node_modules/git-fs/lib/git-fs.js:208:7)
2013-10-24T20:23:55.601326+00:00 app[web.1]: 
2013-10-24T20:23:55.605444+00:00 app[web.1]:     at maybeClose (child_process.js:735:16)
2013-10-24T20:23:55.605439+00:00 app[web.1]:     at ChildProcess.EventEmitter.emit (events.js:98:17)
2013-10-24T20:23:55.605456+00:00 app[web.1]:     at Socket.EventEmitter.emit (events.js:95:17)
2013-10-24T20:23:55.605464+00:00 app[web.1]:     at Pipe.close (net.js:466:12)
2013-10-24T20:23:55.605452+00:00 app[web.1]:     at Socket.<anonymous> (child_process.js:948:11)
2013-10-24T20:23:55.605415+00:00 app[web.1]: TypeError: undefined is not a function
2013-10-24T20:23:55.601639+00:00 app[web.1]: /app/node_modules/wheat/node_modules/git-fs/lib/git-fs.js:208
2013-10-24T20:23:56.652015+00:00 heroku[web.1]: Process exited with status 8
2013-10-24T20:23:56.669381+00:00 heroku[web.1]: State changed from up to crashed

我刚刚开始使用 Heroku,我真的不明白为什么它会崩溃。

有人可以解释原因或如何"调试"吗?

谢谢!

所以这里有两件事跳到我面前:

  1. 似乎您在本地运行的节点版本与 heroku 运行的节点版本不同。
  2. path.exists显然是问题的原因,这是一个已弃用的函数。

我会升级到最新的节点版本,看看你是否可以在本地重现(如果是这样,第一个诊断是正确的),然后在你的代码中搜索path.exists并将其替换为 fs.exists ,这应该可以解决问题:)

编辑:在浏览并拉下小麦的来源后,我真诚地建议尝试不同的博客引擎。小麦已经过时,未维护,并且在所有最新版本的节点中都已损坏。此外,小麦的一些依赖项是由同一作者编写的,并且在最近的节点构建中也未维护和损坏。如果您打算建立一个博客,您希望将其建立在维护良好且积极更新的技术上,而不是陈旧和损坏的技术。

如果您追求更流畅,更现代的博客系统,我建议您查看ghost。它维护得很好,主题化,易于部署,甚至还有一个用于在后端编辑和创建帖子的GUI。如果你正在寻找一些更简约和黑客的东西,如果你能用红宝石,我会推荐 jekyll,如果你更喜欢 node,我会推荐 roots。我是roots的维护者,它被积极维护和更新,支持仅使用markdown文件制作的简单博客,并且具有部署到heroku的单个命令。如果您希望我为您设置一个示例博客,我很乐意添加到此答案中,请告诉我:)

最新更新