gpt4 book ai didi

node.js - 如何将带有 express 对象的 http 服务器绑定(bind)到特定的 ip 地址?

转载 作者:搜寻专家 更新时间:2023-11-01 00:17:59 33 4
gpt4 key购买 nike

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

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com