【发布时间】:2020-09-06 13:06:45
【问题描述】:
我正在尝试使用 PM2 创建节点脚本集群,但出现错误且无法正常工作
打字稿中的主节点脚本
import express from 'express';
import mongoose from 'mongoose';
const app = express();
app.get('/', (req, res) => {
const tickets = {};
res.send(tickets);
});
const setup = async () => {
console.clear();
try {
await mongoose.connect('mongodb://127.0.0.1:27017/tickets', {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true
});
} catch(err) {
console.log(err);
}
app.listen(5001, () => {
console.log('listing app on 5001');
});
}
setup();
NPM 运行脚本
ts-node-dev --poll index.ts
我的 PM2 启动脚本 process.json
{
"apps" : [
{
"name" : "main-server",
"script" : "npm start",
"autorestart": true,
"instances" : 4,
"exec_mode" : "cluster"
}
]
}
并得到错误
SyntaxError: Invalid or unexpected token
3|main-ser | at wrapSafe (internal/modules/cjs/loader.js:1047:16)
3|main-ser | at Module._compile (internal/modules/cjs/loader.js:1097:27)
3|main-ser | at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
3|main-ser | at Module.load (internal/modules/cjs/loader.js:977:32)
3|main-ser | at Function.Module._load (internal/modules/cjs/loader.js:877:14)
3|main-ser | at /usr/local/lib/node_modules/pm2/lib/ProcessContainer.js:303:25
3|main-ser | at wrapper (/usr/local/lib/node_modules/pm2/node_modules/async/internal/once.js:12:16)
3|main-ser | at next (/usr/local/lib/node_modules/pm2/node_modules/async/waterfall.js:96:20)
3|main-ser | at /usr/local/lib/node_modules/pm2/node_modules/async/internal/onlyOnce.js:12:16
3|main-ser | at WriteStream.<anonymous> (/usr/local/lib/node_modules/pm2/lib/Utility.js:186:13)
当我使用单个实例“ts-node-dev --poll index.ts”运行直接命令时,它在一次实例上运行良好。但在 PM2 集群模式下,它无法工作并且应用程序无法加载。
【问题讨论】:
-
使用 pm2 运行的命令看起来如何?
-
pm2 start process.json [process.json command already added in question]
标签: node.js typescript pm2 node-cluster