NodeJS - url.toString() 方法



URL 类的 NodeJS url.toString() 方法将从 URL 对象返回序列化的 URL。此方法的返回值等效于 URL.href 属性和 URL.toJSON() 方法。如果分配给 toString() 方法的值不是有效的 URL,则将抛出 TypeError。

Node.js URL 模块提供了几个用于 URL 解析和解析的实用程序,toString() 方法就是其中之一。

语法

以下是 URL 类的 NodeJS toString() 方法的语法


 URL.toString()

参数

此方法不接受任何参数。

返回值

URL 对象上的此方法返回序列化的 URL。

如果我们尝试将有效的 URL 分配给 NodeJS url.toString() 方法,它会以字符串形式返回一个序列化的 URL。

在下面的示例中,我们尝试从 URL 对象获取序列化的 URL。


const url = require('node:url');

const myURL = new URL("https://www.qikepu.com/index.htm");

var result = myURL.toString();
console.log("The serialized URL: " + result);

输出

执行上述程序后,url.toString() 方法返回序列化的 URL 字符串。

The serialized URL: https://www.qikepu.com/index.htm

如果我们为 href 属性和 toString() 方法分配一个有效的 URL,则两者的返回值是等效的。

在以下示例中,我们将为 href 属性和 toString 方法分配一个有效的 URL,并检查两者是否等效。


const url = require('node:url');

const myURL = new URL("https://www.qikepu.com/index.htm");

var toString = myURL.toString();
console.log("Result of toString property: " + toString);

var href = myURL.href;
console.log("Result of href property: " + href);

if(toString === href){
	 	console.log("Both toString and href results are same...");
} else {
	 	console.log("Both are not same...");
}

输出

正如我们在下面的输出中看到的,返回的值是相同的。

Result of toString property: https://www.qikepu.com/index.htm
Result of href property: https://www.qikepu.com/index.htm
Both toString and href results are same...

如果我们分配的值不是有效的 URL 类型,那么 toString() 方法将抛出 TypeError。

在给定的程序中,我们将一个无效的 URL 分配给 toString 方法。


const url = require('node:url');

const myURL = new URL("234httttttqerps://www.qikepu.cgfom/index.htm");

var result = myURL.toString();
console.log("The serialized URL: " + result);

类型错误

如果我们编译并运行上述程序,toString() 方法会抛出 TypeError,因为分配的 URL 无效。

node:internal/url:564
throw new ERR_INVALID_URL(input);
^

TypeError [ERR_INVALID_URL]: Invalid URL
at new NodeError (node:internal/errors:387:5)
at URL.onParseError (node:internal/url:564:9)
at new URL (node:internal/url:640:5)
at Object.<anonymous> (C:\Users\Lenovo\Desktop\JavaScript\nodefile.js:3:15)
at Module._compile (node:internal/modules/cjs/loader:1126:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1180:10)
at Module.load (node:internal/modules/cjs/loader:1004:32)
at Function.Module._load (node:internal/modules/cjs/loader:839:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47 {
input: '234httttttqerps://www.qikepu.cgfom/index.htm',
code: 'ERR_INVALID_URL'
}