【问题标题】:starting node forever script with PORT=XXXX使用 PORT=XXXX 启动 node forever 脚本
【发布时间】:2020-11-01 21:14:54
【问题描述】:

当通过特定端口在命令中运行节点时,我会以这种方式启动应用程序:

PORT=1234 node app.js

如何将端口传递给forever 命令?无论我尝试什么,它似乎都不想工作。

我试过了:

  • 将端口作为 arg 传递:forever start app.js 1234
  • 将端口声明作为 arg 传递:forever start app.js PORT=1234

【问题讨论】:

  • 如何在 windows 中使用命令行停止它?

标签: node.js npm forever


【解决方案1】:
PORT=1234 forever start app.js 

【讨论】:

    【解决方案2】:

    您可以尝试将export PORT=1234 添加到app.js 然后只需运行forever start app.js

    【讨论】:

      【解决方案3】:
      PORT=1234 forever start app.js 
      

      不幸的是,这对我不起作用,所以我尝试了这个并且它有效:

      forever start app.js --port 1234 
      

      【讨论】:

        【解决方案4】:

        如果您永远使用 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 中描述的所有端口。

        【讨论】:

        • @FaizanRupani in window CNTRL + C 或者如果你想杀死进程然后输入这个命令 - $ Taskkill /IM node.exe /F or $ forever stop server.js
        猜你喜欢
        • 2013-12-30
        • 2013-09-07
        • 1970-01-01
        • 2016-01-31
        • 2018-09-25
        • 2014-07-23
        • 2019-04-27
        • 2013-09-22
        • 2013-02-23
        相关资源
        最近更新 更多