我将节点应用程序部署到Heroku上的免费dyno。这个应用程序在本地完美运行。
在Heroku上,似乎应用程序已成功部署。在使用heroku open
进行部署后,访问该网站或使用git push heroku master
似乎始终会提供有效的网站。
不幸的是,通常几分钟后,应用程序崩溃了。显示以下消息:
使用命令heroku logs --tail
检查日志时,我发现以下故障。
编辑的信息显示正确的服务器连接信息。当站点正常工作时,它会显示数据库中的正确数据。
我遇到的问题是我不知道这个看似随机的错误来自哪里。我认为它与连接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
答案 0 :(得分:1)
这不是随机崩溃 - 当应用程序与MySQL的连接关闭时,应用程序崩溃。您的应用需要数据库重新连接逻辑。