我的存储库中有这个版本的博客: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,我真的不明白为什么它会崩溃。
有人可以解释原因或如何"调试"吗?
谢谢!
所以这里有两件事跳到我面前:
- 似乎您在本地运行的节点版本与 heroku 运行的节点版本不同。
-
path.exists
显然是问题的原因,这是一个已弃用的函数。
我会升级到最新的节点版本,看看你是否可以在本地重现(如果是这样,第一个诊断是正确的),然后在你的代码中搜索path.exists
并将其替换为 fs.exists
,这应该可以解决问题:)
编辑:在浏览并拉下小麦的来源后,我真诚地建议尝试不同的博客引擎。小麦已经过时,未维护,并且在所有最新版本的节点中都已损坏。此外,小麦的一些依赖项是由同一作者编写的,并且在最近的节点构建中也未维护和损坏。如果您打算建立一个博客,您希望将其建立在维护良好且积极更新的技术上,而不是陈旧和损坏的技术。
如果您追求更流畅,更现代的博客系统,我建议您查看ghost。它维护得很好,主题化,易于部署,甚至还有一个用于在后端编辑和创建帖子的GUI。如果你正在寻找一些更简约和黑客的东西,如果你能用红宝石,我会推荐 jekyll,如果你更喜欢 node,我会推荐 roots。我是roots的维护者,它被积极维护和更新,支持仅使用markdown文件制作的简单博客,并且具有部署到heroku的单个命令。如果您希望我为您设置一个示例博客,我很乐意添加到此答案中,请告诉我:)