使用 PORT=XXXX 启动节点永久脚本
starting node forever script with PORT=XXXX
当 运行 节点控制特定端口时,我会这样启动应用程序:
PORT=1234 node app.js
如何将端口传递给 forever
命令?无论我怎么尝试,它似乎都不想工作。
我试过:
- 将端口作为参数传递:
forever start app.js 1234
- 将端口声明作为 arg 传递:
forever start app.js PORT=1234
PORT=1234 forever start app.js
您可以尝试将 export PORT=1234
添加到 app.js
然后 运行 和 forever start app.js
如果你永远使用 Node,你可以在你的根目录中创建一个 forever.json 文件,并在数组中的 json 文件中提及你的所有端口。示例:
forever.json
[
{
"uid": "app1",
"append": true,
"watch": true,
"script": "server.js",
"sourceDir": "D:\DEVELOPEMENT\workshop",
"args": ["--port", "8081", "--ip", "127.0.0.1"]
},
{
"uid": "app2",
"append": true,
"watch": true,
"script": "server.js",
"sourceDir": "D:\DEVELOPEMENT\workshop" ,
"args": ["--port", "8082", "--ip", "127.0.0.1"]
},
{
"uid": "app3",
"append": true,
"watch": true,
"script": "server.js",
"sourceDir": "D:\DEVELOPEMENT\workshop" ,
"args": ["--port", "8083", "--ip", "127.0.0.1"]
}
]
提供你的源码目录和脚本(app.js/server.js).
现在运行以上3个应用程序在不同的端口通过命令永远启动forever.json
但是节点永远通过命令行将 ip 和端口传递给我们的程序。因此,要从 process.argv 获取值,我们需要节点的最小包。安装 minimist 然后写下你的 app.js 以通过命令动态提供 ip 和端口(永远会自动执行)。
server.js / app.js
var express = require('express');
var app = express();
const parseArgs = require('minimist') (process.argv.slice(2))
const IP = parseArgs.ip || "127.0.0.1"
const PORT = parseArgs.port || 8000
app.get("/", function (req, res) {
res.send("Server running on " + IP + ":" + PORT)
})
console.log("START ", IP+" :",PORT)
app.listen(PORT, IP)
module.exports = app;
现在运行永远开始forever.json并检查forever.json.
中描述的所有端口
PORT=1234 forever start app.js
不幸的是,这对我不起作用,所以我尝试了这个并且它起作用了:
forever start app.js --port 1234
当 运行 节点控制特定端口时,我会这样启动应用程序:
PORT=1234 node app.js
如何将端口传递给 forever
命令?无论我怎么尝试,它似乎都不想工作。
我试过:
- 将端口作为参数传递:
forever start app.js 1234
- 将端口声明作为 arg 传递:
forever start app.js PORT=1234
PORT=1234 forever start app.js
您可以尝试将 export PORT=1234
添加到 app.js
然后 运行 和 forever start app.js
如果你永远使用 Node,你可以在你的根目录中创建一个 forever.json 文件,并在数组中的 json 文件中提及你的所有端口。示例:
forever.json
[
{
"uid": "app1",
"append": true,
"watch": true,
"script": "server.js",
"sourceDir": "D:\DEVELOPEMENT\workshop",
"args": ["--port", "8081", "--ip", "127.0.0.1"]
},
{
"uid": "app2",
"append": true,
"watch": true,
"script": "server.js",
"sourceDir": "D:\DEVELOPEMENT\workshop" ,
"args": ["--port", "8082", "--ip", "127.0.0.1"]
},
{
"uid": "app3",
"append": true,
"watch": true,
"script": "server.js",
"sourceDir": "D:\DEVELOPEMENT\workshop" ,
"args": ["--port", "8083", "--ip", "127.0.0.1"]
}
]
提供你的源码目录和脚本(app.js/server.js).
现在运行以上3个应用程序在不同的端口通过命令永远启动forever.json
但是节点永远通过命令行将 ip 和端口传递给我们的程序。因此,要从 process.argv 获取值,我们需要节点的最小包。安装 minimist 然后写下你的 app.js 以通过命令动态提供 ip 和端口(永远会自动执行)。
server.js / app.js
var express = require('express');
var app = express();
const parseArgs = require('minimist') (process.argv.slice(2))
const IP = parseArgs.ip || "127.0.0.1"
const PORT = parseArgs.port || 8000
app.get("/", function (req, res) {
res.send("Server running on " + IP + ":" + PORT)
})
console.log("START ", IP+" :",PORT)
app.listen(PORT, IP)
module.exports = app;
现在运行永远开始forever.json并检查forever.json.
中描述的所有端口PORT=1234 forever start app.js
不幸的是,这对我不起作用,所以我尝试了这个并且它起作用了:
forever start app.js --port 1234