作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
如何将特定地址绑定(bind)到 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。虽然它意味着绑定(bind)到所有 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 的参数列表。
所以如果你跑
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");
关于node.js - 如何将带有 express 对象的 http 服务器绑定(bind)到特定的 ip 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29412303/
我是一名优秀的程序员,十分优秀!