gpt4 book ai didi

node.js - Nodejs new url.URL ("https://myurl.com:80") 将端口列为空

转载 作者:太空宇宙 更新时间:2023-11-03 23:51:52 28 4
gpt4 key购买 nike

我注意到如果我使用 url 来解析字符串

const url = require('url');
const myUrl = new url.URL("http://myurl.com:80")

生成的对象会将 myUrl.port 列为“”。但是如果我改为设置

const url = require('url');
const myUrl = new url.URL("http://myurl.com:70")

它将把 myUrl.port 列为“70”。

我知道端口 80 是默认端口。但为什么模块要费尽心思去剥离我明确设置的端口呢?

最佳答案

这就是为 Node JS 设计 URL 模块的方式。根据docs

The port value may be a number or a string containing a number in the range 0 to 65535 (inclusive). Setting the value to the default port of the URL objects given protocol will result in the port value becoming the empty string ('').

因此,如果您使用80 (http),它将给出端口的空字符串。如果您有 https url,例如 https://myurl.com:443,则默认端口也将为空字符串。

这里值得注意的是,您分配给请求的协议(protocol)必须与它所采用的默认端口匹配。就像您有这样的网址

https://myurl.com:80 

然后它将返回端口为 80 ,而不是空字符串,因为 https 的默认端口是 443

关于node.js - Nodejs new url.URL ("https://myurl.com:80") 将端口列为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59104197/

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