无法使用PM2创建节点脚本集群

问题描述 投票:2回答:1

我正在尝试使用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群集模式下,它无法正常工作,并且无法加载应用程序。

node.js typescript pm2 node-cluster
1个回答
0
投票

我认为问题是您正在尝试使用PM2运行打字稿代码。我自己没有尝试过,但显然PM2有一个TS Plugin。如果这样不起作用,您可以随时自己翻译代码,然后通过PM2运行它。

© www.soinside.com 2019 - 2024. All rights reserved.