Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将带有express对象的http服务器绑定到特定ip地址?_Node.js_Express - Fatal编程技术网

Node.js 如何将带有express对象的http服务器绑定到特定ip地址?

Node.js 如何将带有express对象的http服务器绑定到特定ip地址?,node.js,express,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不是您可以访问的实际IP。尽管它意味着绑定到所有I

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

不是您可以访问的实际IP。尽管它意味着绑定到所有IP或任何IP。因此,难怪它适用于
127.0.0.1
。如果您在网络设备(LAN、WiFi、虚拟设备)上设置了IP地址,它也会监听这些设备


在python中,您只需键入
runserver 0.0.0.0
或其他内容,那么在Node.js中是否有其他选择

提供传递给节点的参数列表

所以如果你跑

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

可能是@victorkohl的副本我找到了那篇文章,但是链接没有帮助,我是node.js的新手,那你是怎么做的?您问题中的代码没有将IP传递给
listen
函数。我尝试将“0.0.0.0”传递给http.listen()作为第二个参数,但它不起作用,IP地址仍然设置为127.0.0.1在python中,您只需键入0.0.0.0 runserver或其他内容,所以在node.js中没有解决方案?没有内置的方法通过命令行参数告诉node要侦听哪个IP,如果这是您的意思,则没有。你可以用它来编程。那么我如何把它放在server.js中呢?您是否愿意演示一点代码,以便我可以接受这个答案
http.listen(3000,process.argv[2])