如果您永远使用 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)。
现在通过命令forever start forever.json
在不同的端口运行以上所有的3个应用程序
但是节点永远通过命令行将 ip 和端口传递给我们的程序。因此,要从 process.argv 获取值,我们需要 node.js 的 minimist 包。安装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 start forever.json 并检查 forever.json 中描述的所有端口。