javascript - Heroku Node.js 服务器在运行 npm start 脚本时出错
问题描述
我已经在 heroku 上运行了一年没有任何问题的服务器,但是在上次部署时,它在运行时出现错误,信息很少npm start
,除了模块更新之外,回滚构建和这个新部署之间几乎没有变化,但是一个有效,另一个无效。
我更新了我的包,明确说明了我的 NPM 和 Node 版本(如下所示,我的 package.json 文件),并测试了多个回滚以查看它们有什么不同(这似乎没什么)。由于错误发生在我的服务器代码之前(如下所示),我什至不知道从哪里开始诊断。
node server.js
除了运行不起作用之外,控制台几乎没有提供任何解释:
2020-10-26T07:42:03.627918+00:00 heroku[web.1]: Starting process with command `npm start`
2020-10-26T07:42:07.108788+00:00 app[web.1]:
2020-10-26T07:42:07.108829+00:00 app[web.1]: > wts-server@0.1.3 start /app
2020-10-26T07:42:07.108830+00:00 app[web.1]: > node server.js
2020-10-26T07:42:07.108830+00:00 app[web.1]:
2020-10-26T07:42:08.624074+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2020-10-26T07:42:08.624385+00:00 app[web.1]: npm ERR! errno 1
2020-10-26T07:42:08.628135+00:00 app[web.1]: npm ERR! wts-server@0.1.3 start: `node server.js`
2020-10-26T07:42:08.628296+00:00 app[web.1]: npm ERR! Exit status 1
2020-10-26T07:42:08.628470+00:00 app[web.1]: npm ERR!
2020-10-26T07:42:08.628623+00:00 app[web.1]: npm ERR! Failed at the wts-server@0.1.3 start script.
2020-10-26T07:42:08.628776+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
2020-10-26T07:42:08.639120+00:00 app[web.1]:
2020-10-26T07:42:08.639338+00:00 app[web.1]: npm ERR! A complete log of this run can be found in:
2020-10-26T07:42:08.639462+00:00 app[web.1]: npm ERR! /app/.npm/_logs/2020-10-26T07_42_08_630Z-debug.log
2020-10-26T07:42:08.690140+00:00 heroku[web.1]: Process exited with status 1
这是我的package.json
文件:
{
"name": "wts-server",
"jest": {
"testEnvironment": "node",
"verbose": true
},
"version": "0.1.3",
"description": "Server for West Coast Megagames Watch the Skies Prototype.",
"main": "server.js",
"directories": {
"test": "tests"
},
"scripts": {
"start": "node server.js",
"server": "nodemon server.js",
"client": "npm start --prefix ../reactapp",
"dev": "concurrently \"npm run server\" \"npm run client\"",
"test": "jest --detectOpenHandles --coverage"
},
"engines": {
"node": "12.18.3",
"npm": "6.14.6"
},
"author": "John T. Cleveland",
"license": "ISC",
"dependencies": {
"bcryptjs": "^2.4.3",
"body-parser": "^1.19.0",
"compression": "^1.7.4",
"concurrently": "^5.3.0",
"config": "^3.3.2",
"cors": "^2.8.5",
"debug": "^4.2.0",
"express": "^4.17.1",
"express-async-errors": "^3.1.1",
"helmet": "^3.23.3",
"joi": "^17.3.0",
"jsonwebtoken": "^8.5.1",
"mongodb": "^3.6.2",
"mongoose": "^5.10.10",
"socket.io": "^2.3.0",
"supports-color": "^7.2.0",
"winston": "^3.3.3",
"winston-mongodb": "^5.0.5"
},
"devDependencies": {
"jest": "^26.6.1",
"nodemon": "^2.0.6",
"supertest": "^4.0.2"
}
}
服务器本身似乎根本没有激活,因为通常我会收到信息消息。该错误似乎发生在代码之前,我想知道我是否错过了一些小东西。
server.js
即使它根本没有被击中:
const express = require('express'); // Import of EXPRESS to create routing app
const http = require('http'); // Import of the NODE HTTP module to create the http server
const { logger } = require('./middleware/log/winston'); // Import of winston for error logging
logger.info('Starting boot-up for WTS Game server...');
require('supports-color'); // Allows colors for debug panel
// Start up proceesses
logger.info('Loading Start-up proceesses...');
const app = express(); // Init for express
logger.info('Express app started...');
const server = http.createServer(app); // Creation of an HTTP server
logger.info('HTTP server created...');
require('./middleware/log/logging')(); // Bootup for error handling
require('./routes/sockets')(server); // Starts websocket
require('./routes/routes')(app); // Bootup for Express routes
require('./middleware/mongoDB/db')(); // Bootup of MongoDB through Mongoose
require('./config/config')(); // Bootup for special configurations
require('./middleware/production/prod')(app); // Production compression and middleware
app.use(express.static('public'));
const port = process.env.PORT || 5000; // Server entry point - Node Server
server.listen(port, () => logger.info(`WTS Server started on port ${port}...`));
代码在开发环境中运行良好,直到这个合并在 heroku 上运行良好,没有实际的错误来诊断我不知道为什么它现在不能启动。任何帮助都会很棒。