我正在Ubunty上为我的node.js环境试验PM2,并想试着弄清楚如何获取命令行中指定的端口号,如下所示......
$pm2 start test.js --node-args "port=3001 sitename='first pm2 app'"
...然后在我的目标脚本(上例中的test.js)中使用该端口号作为我的.listen端口...例如:
var express = require('express')
var app = express()
app.get('/', function (req, res) {
res.send('Hello World!')
})
app.listen(PORT_NUM_HERE, function () {
console.log('Example app listening on port ' + PORT_NUM_HERE + '!')
})
我也看到使用PM2我可以使用配置文件来定义进程名称,端口等。如果我这样做,同样的问题,如何获取配置文件中使用的端口并在我的子脚本中使用它
示例配置文件:
{
"apps": [
{
"name": "futurestudio-homepage",
"script": "./homepage/server.js",
"instances": 2,
"exec_mode": "cluster",
"env": {
"NODE_ENV": "production",
"PORT": "3000",
}
}
}
] }
答案 0 :(得分:0)
在命令行上指定环境变量:
NODE_PORT=3100 pm2 start ./src/server.ts --name dev
可以使用process.json
或ecosystem.config.js
来配置PM2。 The docs are here。
这应该在端口3100上启动您的应用程序:
pm2 start ecosystem.config.js
ecosystem.config.js
文件的内容:
// ecosystem.config.js
module.exports = {
apps : [{
name: "dev",
script: "src/server.ts",
cwd: "/root/api",
env: {
NODE_PORT:"3100",
NODE_ENV:"development"
}
}]
}
添加,您可以通过在服务器上运行类似的代码来对其进行测试:
curl http://127.0.0.1:3100