如何将带有 express 对象的 http 服务器绑定到特定的 ip 地址?
How to bind http server with express object to a specific ip address?
如何将特定地址绑定到 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.0.0.0
不是您可以访问的实际 IP。虽然这意味着绑定到 所有 IP,或任何 IP。所以难怪它适用于 127.0.0.1
。如果您在其中一个网络设备(LAN、WiFi、虚拟)上设置了 IP 地址,它也会监听这些设备。
In python you can simply type runserver 0.0.0.0
or something, so in Node.js is there an alternative?
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 地址听。
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");
如何将特定地址绑定到 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.0.0.0
不是您可以访问的实际 IP。虽然这意味着绑定到 所有 IP,或任何 IP。所以难怪它适用于 127.0.0.1
。如果您在其中一个网络设备(LAN、WiFi、虚拟)上设置了 IP 地址,它也会监听这些设备。
In python you can simply type
runserver 0.0.0.0
or something, so in Node.js is there an alternative?
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 地址听。
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");