url.port
获取及设置URL的端口(port)部分。
const { URL } = require('url');
const myURL = new URL('https://example.org:8888');
console.log(myURL.port);
// 输出 8888
// 默认端口将自动转换为空字符
// (HTTPS协议默认端口是443)
myURL.port = '443';
console.log(myURL.port);
// 输出空字符
console.log(myURL.href);
// 输出 https://example.org/
myURL.port = 1234;
console.log(myURL.port);
// 输出 1234
console.log(myURL.href);
// 输出 https://example.org:1234/
// 完全无效的端口字符串将被忽略
myURL.port = 'abcd';
console.log(myURL.port);
// 输出 1234
// 开头的数字将会被当做端口数
myURL.port = '5678abcd';
console.log(myURL.port);
// 输出 5678
// 非整形数字将会被截取部分
myURL.port = 1234.5678;
console.log(myURL.port);
// 输出 1234
// 超出范围的数字将被忽略
myURL.port = 1e10;
console.log(myURL.port);
// 输出 1234
端口值可以被设置为数字或包含数字的字符串,数字范围0
~65535
(包括)。为给定protocol
的URL
对象设置端口值将会导致port
值变成空字符(''
)。
如果给port
属性设置的值是无效字符串,但如果字符串以数字开头,那么开头部位的数字将会被赋值给port
。否则,包括如果数字超出上述要求的数字,将被忽略。
Gets and sets the port portion of the URL.
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 (''
).
The port value can be an empty string in which case the port depends on the protocol/scheme:
protocol | port |
---|---|
"ftp" | 21 |
"file" | |
"gopher" | 70 |
"http" | 80 |
"https" | 443 |
"ws" | 80 |
"wss" | 443 |
Upon assigning a value to the port, the value will first be converted to a
string using .toString()
.
If that string is invalid but it begins with a number, the leading number is
assigned to port
.
If the number lies outside the range denoted above, it is ignored.
const myURL = new URL('https://example.org:8888');
console.log(myURL.port);
// Prints 8888
// Default ports are automatically transformed to the empty string
// (HTTPS protocol's default port is 443)
myURL.port = '443';
console.log(myURL.port);
// Prints the empty string
console.log(myURL.href);
// Prints https://example.org/
myURL.port = 1234;
console.log(myURL.port);
// Prints 1234
console.log(myURL.href);
// Prints https://example.org:1234/
// Completely invalid port strings are ignored
myURL.port = 'abcd';
console.log(myURL.port);
// Prints 1234
// Leading numbers are treated as a port number
myURL.port = '5678abcd';
console.log(myURL.port);
// Prints 5678
// Non-integers are truncated
myURL.port = 1234.5678;
console.log(myURL.port);
// Prints 1234
// Out-of-range numbers which are not represented in scientific notation
// will be ignored.
myURL.port = 1e10; // 10000000000, will be range-checked as described below
console.log(myURL.port);
// Prints 1234
Note that numbers which contain a decimal point, such as floating-point numbers or numbers in scientific notation, are not an exception to this rule. Leading numbers up to the decimal point will be set as the URL's port, assuming they are valid:
myURL.port = 4.567e21;
console.log(myURL.port);
// Prints 4 (because it is the leading number in the string '4.567e21')