Bur*_*urg 3 javascript hostname listen node.js server
目前我尝试启动 Node.js 服务器,并且我确实想了解 server.listen 的参数。
server.listen(port, hostname, backlog, callback);
Run Code Online (Sandbox Code Playgroud)
问题:据我了解,listen 的 2. 参数应该是主机名。结果应该是,我能够通过“主机名:7000”到达服务器,但结果是脚本崩溃了。没有“主机名”一切正常。这里有什么问题吗?“主机名”有什么用?
const server = http.createServer(function (req, res) {
console.log(req);
});
server.listen(7000, "bla");
Run Code Online (Sandbox Code Playgroud)
浏览器:
bla:7000
Run Code Online (Sandbox Code Playgroud)
不起作用。
错误:
Error: listen EADDRNOTAVAIL 22.0.0.0:7000
at Object.exports._errnoException (util.js:1022:11)
at exports._exceptionWithHostPort (util.js:1045:20)
at Server._listen2 (net.js:1246:19)
at listen (net.js:1295:10)
at net.js:1405:9
at _combinedTickCallback (internal/process/next_tick.js:77:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
at Module.runMain (module.js:606:11)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:149:9)
Run Code Online (Sandbox Code Playgroud)
该hostname参数用于以下情况:服务器具有多个网络接口,并且您只希望服务器侦听其中一个接口(与默认情况相反,默认情况是侦听所有接口)。
例如,如果您希望服务器只能由在服务器本身上运行的客户端访问,则可以使其侦听环回网络接口,该接口的 IP 地址为“127.0.0.1”或主机名“localhost”:
server.listen(7000, "localhost")
server.listen(7000, "127.0.0.1")
Run Code Online (Sandbox Code Playgroud)
这并不意味着您可以输入任何主机名并神奇地获得通过该主机名访问服务器的能力,这不是它的工作方式或目的。
| 归档时间: |
|
| 查看次数: |
4968 次 |
| 最近记录: |