簡體   English   中英

如何將帶有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地址,它也會監聽這些設備。


在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地址。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM