我的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中的所有服务设置不同的端口并全部运行它们?
答案 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