2017-04-16 216 views
0

我在Heroku上托管了一个Express应用程序。本地它运行得很好,但在Heroku上不断崩溃。每次我去它,我都会看到'应用程序错误'页面。Heroku Node应用程序不断崩溃

application error page

我仔细检查了所有的环境变量,他们似乎确定。

Heroku的日志不完全提供太大的帮助:

2017-04-16T23:02:49.001768+00:00 heroku[web.1]: State changed from crashed 
to starting 
2017-04-16T23:02:52.072906+00:00 heroku[web.1]: Starting process with 
command `npm run start` 
2017-04-16T23:02:56.042611+00:00 app[web.1]: 
2017-04-16T23:02:56.042628+00:00 app[web.1]: > [email protected] start /app 
2017-04-16T23:02:56.042629+00:00 app[web.1]: > node bin/app 
2017-04-16T23:02:56.042630+00:00 app[web.1]: 
2017-04-16T23:02:57.200912+00:00 heroku[web.1]: State changed from starting 
to crashed 
2017-04-16T23:02:57.201454+00:00 heroku[web.1]: State changed from crashed 
to starting 
2017-04-16T23:02:57.192198+00:00 heroku[web.1]: Process exited with status 0 
2017-04-16T23:03:00.981528+00:00 heroku[web.1]: Starting process with 
command `npm run start` 
2017-04-16T23:03:04.312475+00:00 app[web.1]: 
2017-04-16T23:03:04.312489+00:00 app[web.1]: > [email protected] start /app 
2017-04-16T23:03:04.312490+00:00 app[web.1]: > node bin/app 
2017-04-16T23:03:04.312491+00:00 app[web.1]: 
2017-04-16T23:03:06.093211+00:00 heroku[web.1]: Process exited with status 0 
2017-04-16T23:03:06.112842+00:00 heroku[web.1]: State changed from starting 
to crashed 

于是我尝试手动启动该应用程序:

$ heroku run bash 
... 
$ npm run start 

我没有错误。我使用的是PM2进程管理器,所以我检查,看看是否应用程序正在运行,现在看来似乎是:

$ node_modules/.bin/pm2 list 
... 

pm2 output

但是当我去开我的应用程序,我得到与以前相同的“应用程序错误”页面。

'heroku restart'不起作用。它每次都会再次崩溃。

我的本地环境和Heroku之间的唯一区别(就我所知至少...而言)是在本地我有一个文件,我正在读取一个RSA私钥,而在Heroku上,关键是从环境中读取。

编辑:按照要求,这里是我的Procfile:

web: npm run start 

任何想法?

+0

RSA私钥有什么作用?你是否按照Heroku的指示部署你的应用程序? https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction –

+0

是的,我遵循指南。我正在尝试构建GitHub集成,所以关键在于GitHub。 – Yulek

+0

你可以添加你的procfile吗? –

回答

0

尝试两件事情:通过扩大它

web: node start.js 

然后确保你的Web程序运行它: 更改procfile

heroku ps:scale web=1 

在您的计算机在终端窗口中运行该命令在您的项目中:

heroku local web 

它模拟Heroku如何运行您的应用程序nd应该告诉你正在发生的事情。

+0

尝试过,但没有运气......将Procfile更改为'node bin/app'+缩放应用程序并备份,但仍然崩溃。如果我以某种方式让自己工作,我会在这里发布。 – Yulek

+1

我唯一的建议是使用Heroku在本地启动你的应用程序,看看它说什么(更新的答案) –