部署到Heroku的节点应用程序随nodemon随机崩溃

时间:2016-08-01 05:14:57

标签: javascript node.js heroku deployment nodemon

我将节点应用程序部署到Heroku上的免费dyno。这个应用程序在本地完美运行。

在Heroku上,似乎应用程序已成功部署。在使用heroku open进行部署后,访问该网站或使用git push heroku master似乎始终会提供有效的网站。

不幸的是,通常几分钟后,应用程序崩溃了。显示以下消息:

enter image description here

使用命令heroku logs --tail检查日志时,我发现以下故障。

enter image description here

编辑的信息显示正确的服务器连接信息。当站点正常工作时,它会显示数据库中的正确数据。

我遇到的问题是我不知道这个看似随机的错误来自哪里。我认为它与连接MySQL有关,但我不知道为什么应用程序重启或尝试重新连接。

我还将服务器启动脚本更改为node lib/application.js并再次遇到相同的错误。

有关此错误的来源,使用的其他heroku配置等的任何信息都将非常感激。

我的npm脚本如下。没有在服务器上运行构建,监视或清理脚本。目前我正在部署之前构建它。

"scripts": {
    "start-local": "nodemon --debug lib/application.js --ignore lib",
    "start": "nodemon --debug lib/application.js --ignore lib",
    "watch": "npm run clean:css && npm run watch:css & npm run watch:js",
    "build:js": "babel src -d lib",
    "watch:js": "nodemon --watch src --exec npm run build:js",
    "build:css": "stylus -u nib res/styles/src/index.styl -o res/styles/lib",
    "watch:css": "stylus -u nib res/styles/src/index.styl -o res/styles/lib -w",
    "clean:css": "rm -rf res/styles/lib && mkdir -p res/styles/lib"
  },

在application.js中运行的代码可以在这里找到:http://pastebin.com/4zvBaHK0

1 个答案:

答案 0 :(得分:1)

这不是随机崩溃 - 当应用程序与MySQL的连接关闭时,应用程序崩溃。您的应用需要数据库重新连接逻辑。