NodeJS - url.href 属性



URL 类的 NodeJS url.href 属性获取并设置序列化的 URL。获取 href 属性的值类似于调用 toString() 方法。Node.js URL 模块提供了几个用于 URL 解析和解析的实用程序,href 属性就是其中之一。

如果我们尝试将此属性的值设置为新值,则等效于使用 new URL(value) 创建新的 URL 对象。URL 对象的每个属性都将根据新值进行修改。

语法

以下是 URL 类的 NodeJS href 属性的语法


 URL.href

参数

此属性不接受任何参数。

返回值

此属性允许我们获取和设置序列化的 URL。

以下是 Node.js 的 URL 模块中的 NodeJS URL.href 属性的示例。

我们可以使用 NodeJS URL.href 属性获取给定的序列化 URL。

在下面的示例中,我们尝试通过将 URL 分配给 NodeJS href 属性来获取序列化的 URL。


const url = require('url');

const myURL = new URL('https://www.qikepu.com/index.htm');
console.log(myURL.href);

输出

正如我们在下面的输出中看到的,NodeJS URL.href 属性重新调整了序列化的 URL。

https://www.qikepu.com/index.htm

我们可以使用 URL.href 属性来设置给定的序列化 URL。

在下面的程序中,我们尝试使用 URL.href 属性修改给定的 URL。


const url = require('url');

const myURL = new URL('https://www.qikepu.com/index.htm');
console.log("Before modifying the URL: " + myURL);

myURL.href = "https://www.Tutorix.com/index.htm";
console.log("After modifying the URL: " + myURL.href);

输出

执行上述程序后,URL.href 属性已修改并返回序列化的 URL。

Before modifying the URL: https://www.qikepu.com/index.htm
After modifying the URL: https://www.tutorix.com/index.htm

我们还可以通过调用 URL.toString() 方法来获取 URL.href 属性的值。

在以下示例中,我们尝试使用 URL.toString() 方法获取序列化的 URL。


const url = require('url');

const myURL = new URL('https://www.Tutorix.com/index.htm');
console.log("Before modifying the URL: " + myURL);

myURL.href = "https://www.qikepu.com/index.htm";
const result = myURL.href;
console.log("After modifying the URL: " + result.toString());

输出

正如我们在下面的输出中看到的,URL.toString() 返回了与 URL.href 属性相同的值。

Before modifying the URL: https://www.tutorix.com/index.htm
After modifying the URL: https://www.qikepu.com/index.htm

如果我们分配的值不是有效的 URL 类型,那么 href 属性将抛出 TypeError。

在给定的程序中,我们将一个无效的 URL 分配给 href 属性。


const url = require('url');

const myURL = new URL(43478998765);
console.log("Before modifying the URL: " + myURL.href);

类型错误

如果我们编译并运行上述程序,href 属性会抛出 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: '43478998765',
code: 'ERR_INVALID_URL'
}