如何将http服务器与快速对象绑定到特定的IP地址?

时间:2015-04-02 11:51:59

标签: node.js express

如何将特定地址绑定到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

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");