如何将特定地址绑定到http对象?目前node.js的默认IP地址是127.0.0.1,我想将其更改为0.0.0.0
var express = require('express');
var app = express();
var http = require('http').Server(app);
http.listen(3000, "0.0.0.0");
如何实现?
编辑:我添加了0.0.0.0,但默认值仍为127.0.0.1
答案 0 :(得分:5)
0.0.0.0
不是您可以覆盖的实际IP。虽然这意味着绑定到 所有 IP或任何IP。所以难怪它适用于127.0.0.1
。如果您在其中一个网络设备(LAN,WiFi,虚拟设备)上设置了IP地址,那么它也会收听。
在python中你可以简单地输入
runserver 0.0.0.0
或者其他东西,所以在Node.js中有替代方法吗?
process.argv
为您提供传递给节点的参数列表。
所以,如果你运行
node server.js 0.0.0.0
你会得到
process.argv[0] //=> "node"
process.argv[1] //=> "server.js"
process.argv[2] //=> "0.0.0.0"
请注意,它是一个数组,因此只要您确定要运行您的文件,就可以使用process.argv[2]
指定该IP地址作为您的IP地址想听。
http.listen(3000, process.argv[2]);
但一般来说,您应该设置环境变量IP
。
http.listen(3000, process.env[IP]);
或者所有人
http.listen(3000, process.argv[2] || process.env[IP] || "0.0.0.0");