如何在本地和hereko服务器上使用命令行运行多个节点js服务??

时间:2019-10-29 07:59:33

标签: javascript node.js heroku

我的node js应用程序中有以下多项服务

.git
 domain
 public
 view
 .gitingore
 service1.js
 service2.js
 service3.js
 package.json
 package-lock.json
 Procfile
 README.md

service1.js代码

var port = process.env.PORT_SERVICE1 || 8001;
 .....
 .....
 .....

service2.js代码

 var port = process.env.PORT_SERVICE2 || 8002;
 .....
 .....
 .....

service3.js代码

var port = process.env.PORT_SERVICE3 || 8003;
 .....
 .....
 .....

目前,我正在Windows上运行上述3项服务,如下所示。

 set PORT_SERVICE1 = 8001
 set PORT_SERVICE2 = 8002
 set PORT_SERVICE3 = 8003

并打开3个不同的命令提示符以运行所有服务

 node service1.js
 node service2.js
 node service3.js

我想在heroko Procfile文件中进行配置。但无法设置?

如何为节点js中的所有服务设置不同的端口并全部运行它们?

2 个答案:

答案 0 :(得分:0)

我建议您使用text-decoration-thickness

它允许您创建复杂的配置文件,该文件将使用您提供的配置启动所有应用程序。

这是一个如何使用配置文件运行多个应用程序的示例

module.exports = {
  apps: [{
      name: 'sevice1',
      script: './services/sevice1',
      watch: true,
      env: {
        NODE_ENV: 'development',
      },
      env_production: {
        NODE_ENV: 'production',
      },
    }, {
      name: 'sevice2',
      script: './services/sevice2',
      watch: true,
      env: {
        NODE_ENV: 'development',
      },
      env_production: {
        NODE_ENV: 'production',
      },
    }],
};

谈到Heroku。 PM2提供PM2。 希望这对您有所帮助!

答案 1 :(得分:0)

@ number16BusShelter建议一个不错的选择。但是,如果您想快速进行操作,请选择以下选项。

在您的Procfile中添加以下代码:

web: node service1.js && node service2.js && node service3.js

参考:Heroku