从 pm2 启动时 NodeJS 应用程序错误
NodeJS app error when starting with pm2
我有一个需要研究的 nodejs 应用程序,但不幸的是它无法启动。员工离开了公司,并没有在应用程序上留下太多信息,所以我有点迷路了。
应用程序 运行 带有 pm2。当我执行 "pm2 start ecosystem.json" 时,状态为 "online" 几秒钟,然后变为 "errored".
在 "pm2 desc ID" 的日志文件中出现以下错误。
SyntaxError: Invalid or unexpected token
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:599:28)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Object.<anonymous> (/usr/lib/node_modules/pm2/lib/ProcessContainerFork.js:83:21)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
这里是package.json
{
"name": "njs-data-api",
"version": "0.0.0",
"private": true,
"scripts": {
"watch": "NODE_ENV=development nodemon --exec babel-node -- ./bin/www",
"build": "rm -rf dist && babel src --ignore __tests__ --out-dir dist",
"sync": "copy the built files to staging",
"deploy": "npm run build && npm run sync",
"start": "NODE_ENV=staging node ./bin/www"
},
"dependencies": {
"bluebird": "^3.5.1",
"body-parser": "~1.18.2",
"bunyan": "^1.8.12",
"cookie-parser": "~1.4.3",
"debug": "~2.6.9",
"dotenv": "^4.0.0",
"express": "~4.15.5",
"joi": "^13.2.0",
"moment": "^2.22.1",
"morgan": "~1.9.0",
"pg": "^7.4.1",
"pg-promise": "^7.5.4",
"pg-pubsub": "^0.3.0",
"pm2": "^2.10.2",
"pug": "2.0.0-beta11",
"redis": "^2.8.0",
"serve-favicon": "~2.4.5"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-preset-es2015-node6": "^0.4.0",
"babel-preset-stage-0": "^6.24.1",
"colors": "^1.2.1",
"nodemon": "^1.17.3"
}
}
非常感谢任何有关如何修复此错误的帮助!
编辑
这是ecosystem.json
的内容
{
"apps": [
{
"name": "User Data Api",
"script": "./bin/www",
"watch": true,
"merge_logs": true,
"min_uptime": 4000,
"max_restarts": 50,
"log_date_format": "YYYY-MM-DD HH:mm:ss.SSS",
"env": {
}
}
]
}
当我 运行 node ./bin/www 我得到以下错误:
/mnt/c/ubuntu/nodejs/njs-user-data-api/bin/www:89
}
SyntaxError: Invalid or unexpected token
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:599:28)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Function.Module.runMain (module.js:676:10)
at startup (bootstrap_node.js:187:16)
at bootstrap_node.js:608:3
第89行是最后一个js函数的右花括号
不确定问题的根源,但我已解决。
当我 运行 节点 ./bin/www 我得到以下错误:
/mnt/c/ubuntu/nodejs/njs-user-data-api/bin/www:89}
这是文件末尾非常简单的函数的右花括号。我注意到,当我尝试将 PHPStorm 的 marker/cursor 移动到右大括号时,这是不可能的,而且 IDE 无法检测到左大括号。所以我按退格键 5-6 次,直到大括号被删除。当我再次输入大括号时,IDE 能够检测到开始和结束大括号并且一切正常。
有人知道是什么导致了这个问题吗?
我有一个需要研究的 nodejs 应用程序,但不幸的是它无法启动。员工离开了公司,并没有在应用程序上留下太多信息,所以我有点迷路了。
应用程序 运行 带有 pm2。当我执行 "pm2 start ecosystem.json" 时,状态为 "online" 几秒钟,然后变为 "errored".
在 "pm2 desc ID" 的日志文件中出现以下错误。
SyntaxError: Invalid or unexpected token
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:599:28)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Object.<anonymous> (/usr/lib/node_modules/pm2/lib/ProcessContainerFork.js:83:21)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
这里是package.json
{
"name": "njs-data-api",
"version": "0.0.0",
"private": true,
"scripts": {
"watch": "NODE_ENV=development nodemon --exec babel-node -- ./bin/www",
"build": "rm -rf dist && babel src --ignore __tests__ --out-dir dist",
"sync": "copy the built files to staging",
"deploy": "npm run build && npm run sync",
"start": "NODE_ENV=staging node ./bin/www"
},
"dependencies": {
"bluebird": "^3.5.1",
"body-parser": "~1.18.2",
"bunyan": "^1.8.12",
"cookie-parser": "~1.4.3",
"debug": "~2.6.9",
"dotenv": "^4.0.0",
"express": "~4.15.5",
"joi": "^13.2.0",
"moment": "^2.22.1",
"morgan": "~1.9.0",
"pg": "^7.4.1",
"pg-promise": "^7.5.4",
"pg-pubsub": "^0.3.0",
"pm2": "^2.10.2",
"pug": "2.0.0-beta11",
"redis": "^2.8.0",
"serve-favicon": "~2.4.5"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-preset-es2015-node6": "^0.4.0",
"babel-preset-stage-0": "^6.24.1",
"colors": "^1.2.1",
"nodemon": "^1.17.3"
}
}
非常感谢任何有关如何修复此错误的帮助!
编辑
这是ecosystem.json
的内容{
"apps": [
{
"name": "User Data Api",
"script": "./bin/www",
"watch": true,
"merge_logs": true,
"min_uptime": 4000,
"max_restarts": 50,
"log_date_format": "YYYY-MM-DD HH:mm:ss.SSS",
"env": {
}
}
]
}
当我 运行 node ./bin/www 我得到以下错误:
/mnt/c/ubuntu/nodejs/njs-user-data-api/bin/www:89 }
SyntaxError: Invalid or unexpected token
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:599:28)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Function.Module.runMain (module.js:676:10)
at startup (bootstrap_node.js:187:16)
at bootstrap_node.js:608:3
第89行是最后一个js函数的右花括号
不确定问题的根源,但我已解决。
当我 运行 节点 ./bin/www 我得到以下错误:
/mnt/c/ubuntu/nodejs/njs-user-data-api/bin/www:89}
这是文件末尾非常简单的函数的右花括号。我注意到,当我尝试将 PHPStorm 的 marker/cursor 移动到右大括号时,这是不可能的,而且 IDE 无法检测到左大括号。所以我按退格键 5-6 次,直到大括号被删除。当我再次输入大括号时,IDE 能够检测到开始和结束大括号并且一切正常。
有人知道是什么导致了这个问题吗?