NodeJS - url.origin 属性



URL 类的 NodeJS url.origin 属性用于获取 URL 源的只读序列化。

此属性不允许设置 URL 源的只读序列化。如果我们尝试为 URL 设置新的源,它将被忽略,并且现有的源不会受到影响。如果为 origin 属性分配了除有效 URL 以外的任何值,则将引发 TypeError。

语法

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


 URL.origin

参数

此属性不接受任何参数。

返回值

此属性仅获取 URL 源的只读序列化。

以下示例演示了 path 模块的 NodeJS URL.origin 属性的用法。

如果我们将 URL 分配给 NodeJS origin 属性,它将仅返回给定 URL 源的只读序列化。

在以下示例中,我们尝试打印输入 URL 的来源。


const url = require('url');

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

输出

正如我们在下面的输出中看到的,origin 属性返回给定 URL 的来源。

https://www.qikepu.com

如果我们尝试使用 URL.origin 属性设置 URL 的来源,它将不允许这样做,然后它将被忽略。原点不受影响。

在以下示例中,我们尝试使用 URL.origin 属性修改给定 URL 的来源。


const url = require('url');

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

myURL.origin = "https://www.tutorix.com/index.htm";
console.log("After setting a new Origin to myURL: " + myURL.origin);

输出

正如我们在下面的输出中看到的,origin 属性不允许为输入 URL 设置新的源。

Before setting the Origin: https://www.qikepu.com
After setting a new Origin to myURL: https://www.qikepu.com

如果我们为 origin 属性分配一个不是有效 URL 类型的值,则 origin 属性将抛出 TypeError。

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


const url = require('url');

const myURL = new URL(2746832);
console.log("The origin: " + myURL.origin);

类型错误

正如我们在下面的输出中看到的,TypeError 是由 origin 属性抛出的。

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: '2746832',
code: 'ERR_INVALID_URL'
}

如果 Unicode 字符出现在输入 URL 的主机名中,则它将自动转换为 ASCII。

在下面的程序中,我们尝试将包含 Unicode 字符的 URL 分配给 origin 属性。


const url = require('url');

const myURL = new URL("https://おねがいします");
console.log(myURL.origin);

输出

如果执行上述程序,输出将显示如下。

https://xn--n8jlg9bk0j8e