url
Модуль node:url предоставляет утилиты для разрешения URL-адресов и их разбора. К нему можно получить доступ с помощью:
import url from 'node:url';
Использование в Deno
import * as mod from "node:url";
class URL
Использование в Deno
import { URL } from "node:url";
Совместимый с браузерами класс URL, реализованный в соответствии со стандартом WHATWG URL. Примеры разобранных URL можно найти непосредственно в Стандарте. Класс URL также доступен в глобальном объекте.
В соответствии с соглашениями браузеров все свойства объектов URL реализованы как геттеры и сеттеры в прототипе класса, а не как свойства данных самого объекта. Поэтому, в отличие от legacy urlObject, использование ключевого слова delete для любых свойств объектов URL (например, delete myURL.protocol, delete myURL.pathname и т. д.) не имеет эффекта, но всё равно возвращает true.
Конструкторы
URL(
input: string | { toString: () => string; },
base?: string | URL,
) Свойства
hash: string Возвращает и задаёт фрагмент URL.
const myURL = new URL('https://example.org/foo#bar');
console.log(myURL.hash);
// Prints #bar
myURL.hash = 'baz';
console.log(myURL.href);
// Prints https://example.org/foo#baz
Недопустимые символы URL, включённые в значение, присвоенное свойству hash, percent-encoded. Набор символов, кодируемых в процентном представлении, может несколько отличаться от того, который используют методы parse и format.
host: string Возвращает и задаёт часть URL, содержащую хост.
const myURL = new URL('https://example.org:81/foo');
console.log(myURL.host);
// Prints example.org:81
myURL.host = 'example.com:82';
console.log(myURL.href);
// Prints https://example.com:82/foo
Недопустимые значения хоста, присвоенные свойству host, игнорируются.
hostname: string Возвращает и задаёт имя хоста в URL. Главное различие между url.host и url.hostname заключается в том, что url.hostname не включает порт.
const myURL = new URL('https://example.org:81/foo');
console.log(myURL.hostname);
// Prints example.org
// Setting the hostname does not change the port
myURL.hostname = 'example.com';
console.log(myURL.href);
// Prints https://example.com:81/foo
// Use myURL.host to change the hostname and port
myURL.host = 'example.org:82';
console.log(myURL.href);
// Prints https://example.org:82/foo
Недопустимые значения имени хоста, присвоенные свойству hostname, игнорируются.
href: string Возвращает и задаёт сериализованный URL.
const myURL = new URL('https://example.org/foo');
console.log(myURL.href);
// Prints https://example.org/foo
myURL.href = 'https://example.com/bar';
console.log(myURL.href);
// Prints https://example.com/bar
Получение значения свойства href равносильно вызову toString.
Присвоение этому свойству нового значения равносильно созданию нового объекта URL с помощью new URL(value). Все свойства объекта URL будут изменены.
Если значение, присвоенное свойству href, не является допустимым URL, будет выброшено исключение TypeError.
origin: string Возвращает сериализованное происхождение URL; свойство доступно только для чтения.
const myURL = new URL('https://example.org/foo/bar?baz');
console.log(myURL.origin);
// Prints https://example.org
const idnURL = new URL('https://測試');
console.log(idnURL.origin);
// Prints https://xn--g6w251d
console.log(idnURL.hostname);
// Prints xn--g6w251d
password: string Возвращает и задаёт часть URL, содержащую пароль.
const myURL = new URL('https://abc:xyz@example.com');
console.log(myURL.password);
// Prints xyz
myURL.password = '123';
console.log(myURL.href);
// Prints https://abc:123@example.com/
Недопустимые символы URL, включённые в значение, присвоенное свойству password, percent-encoded. Набор символов, кодируемых в процентном представлении, может несколько отличаться от того, который используют методы parse и format.
pathname: string Возвращает и задаёт путь URL.
const myURL = new URL('https://example.org/abc/xyz?123');
console.log(myURL.pathname);
// Prints /abc/xyz
myURL.pathname = '/abcdef';
console.log(myURL.href);
// Prints https://example.org/abcdef?123
Недопустимые символы URL, включённые в значение, присвоенное свойству pathname, percent-encoded. Набор символов, кодируемых в процентном представлении, может несколько отличаться от того, который используют методы parse и format.
port: string Возвращает и задаёт часть URL, содержащую порт.
Значение порта может быть числом или строкой, содержащей число в диапазоне от 0 до 65535 включительно. Если задать значение, равное порту по умолчанию для объектов URL с указанным protocol, значение port станет пустой строкой ('').
Значение порта может быть пустой строкой; в этом случае порт зависит от протокола/схемы:
При присвоении значения порту это значение сначала будет преобразовано в строку с помощью .toString().
Если эта строка недопустима, но начинается с числа, начальное число присваивается port. Если число выходит за указанный выше диапазон, оно игнорируется.
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
Числа с десятичной точкой, например числа с плавающей точкой или числа в научной нотации, также подпадают под это правило. Начальные числа до десятичной точки будут заданы в качестве порта URL, если они допустимы:
myURL.port = 4.567e21;
console.log(myURL.port);
// Prints 4 (because it is the leading number in the string '4.567e21')
protocol: string Возвращает и задаёт часть URL, содержащую протокол.
const myURL = new URL('https://example.org');
console.log(myURL.protocol);
// Prints https:
myURL.protocol = 'ftp';
console.log(myURL.href);
// Prints ftp://example.org/
Недопустимые значения протокола URL, присвоенные свойству protocol, игнорируются.
search: string Возвращает и задаёт сериализованную часть URL, содержащую строку запроса.
const myURL = new URL('https://example.org/abc?123');
console.log(myURL.search);
// Prints ?123
myURL.search = 'abc=xyz';
console.log(myURL.href);
// Prints https://example.org/abc?abc=xyz
Любые недопустимые символы URL в значении, присвоенном свойству search, будут percent-encoded. Набор символов, кодируемых в процентном представлении, может несколько отличаться от того, который используют методы parse и format.
searchParams: URLSearchParams Возвращает объект URLSearchParams, представляющий параметры запроса URL. Это свойство доступно только для чтения, однако предоставленный им объект URLSearchParams можно использовать для изменения экземпляра URL. Чтобы заменить все параметры запроса URL, используйте сеттер search. Подробности см. в документации URLSearchParams.
Будьте осторожны при использовании .searchParams для изменения URL, поскольку, согласно спецификации WHATWG, объект URLSearchParams использует другие правила определения символов, кодируемых в процентном представлении. Например, объект URL не кодирует в процентном представлении символ ASCII «тильда» (~), тогда как URLSearchParams всегда его кодирует:
const myURL = new URL('https://example.org/abc?foo=~bar');
console.log(myURL.search); // prints ?foo=~bar
// Modify the URL via searchParams...
myURL.searchParams.sort();
console.log(myURL.search); // prints ?foo=%7Ebar
username: string Возвращает и задаёт часть URL, содержащую имя пользователя.
const myURL = new URL('https://abc:xyz@example.com');
console.log(myURL.username);
// Prints abc
myURL.username = '123';
console.log(myURL.href);
// Prints https://123:xyz@example.com/
Любые недопустимые символы URL в значении, присвоенном свойству username, будут percent-encoded. Набор символов, кодируемых в процентном представлении, может несколько отличаться от того, который используют методы parse и format.
Методы
toJSON(): string Метод toJSON() объекта URL возвращает сериализованный URL. Возвращаемое значение эквивалентно значениям href и toString.
Этот метод вызывается автоматически при сериализации объекта URL с помощью JSON.stringify().
const myURLs = [
new URL('https://www.example.com'),
new URL('https://test.example.org'),
];
console.log(JSON.stringify(myURLs));
// Prints ["https://www.example.com/","https://test.example.org/"]
toString(): string Метод toString() объекта URL возвращает сериализованный URL. Возвращаемое значение эквивалентно значениям href и toJSON.
Статические методы
canParse(
input: string,
base?: string,
): boolean Проверяет, можно ли разобрать input относительно base как URL.
const isValid = URL.canParse('/foo', 'https://example.org/'); // true
const isNotValid = URL.canParse('/foo'); // false
createObjectURL(blob: NodeBlob): string Создаёт строку URL 'blob:nodedata:...', представляющую указанный объект Blob и позволяющую позднее получить Blob.
import {
Blob,
resolveObjectURL,
} from 'node:buffer';
const blob = new Blob(['hello']);
const id = URL.createObjectURL(blob);
// later...
const otherBlob = resolveObjectURL(id);
console.log(otherBlob.size);
Данные, хранящиеся в зарегистрированном Blob, будут оставаться в памяти, пока не будет вызван URL.revokeObjectURL() для их удаления.
Объекты Blob регистрируются в текущем потоке. При использовании рабочих потоков объекты Blob, зарегистрированные в одном рабочем потоке, будут недоступны другим рабочим потокам и основному потоку.
Разбирает строку как URL. Если указан base, он будет использоваться в качестве базового URL для разрешения не абсолютных URL input. Возвращает null, если input недопустим.
revokeObjectURL(id: string): void Удаляет сохранённый Blob, идентифицируемый указанным идентификатором. Попытка отозвать незарегистрированный идентификатор не приведёт к ошибке.
interface URL
переменная URL
URL class is a global reference for import { URL } from 'url' https://nodejs.org/api/url.html#the-whatwg-url-api
Тип
globalThis extends { onmessage: any; URL: infer T; } ? T : _URL класс URLSearchParams
Использование в Deno
import { URLSearchParams } from "node:url";
API URLSearchParams предоставляет доступ для чтения и записи параметров запроса URL. Класс URLSearchParams также можно использовать отдельно с одним из четырёх следующих конструкторов. Класс URLSearchParams также доступен в глобальном объекте.
Интерфейс WHATWG URLSearchParams и модуль querystring имеют схожее назначение, однако назначение модуля querystring более широкое, поскольку он позволяет настраивать символы-разделители (& и =). С другой стороны, этот API предназначен исключительно для строк запроса URL.
const myURL = new URL('https://example.org/?abc=123');
console.log(myURL.searchParams.get('abc'));
// Prints 123
myURL.searchParams.append('abc', 'xyz');
console.log(myURL.href);
// Prints https://example.org/?abc=123&abc=xyz
myURL.searchParams.delete('abc');
myURL.searchParams.set('a', 'b');
console.log(myURL.href);
// Prints https://example.org/?a=b
const newSearchParams = new URLSearchParams(myURL.searchParams);
// The above is equivalent to
// const newSearchParams = new URLSearchParams(myURL.search);
newSearchParams.append('a', 'c');
console.log(myURL.href);
// Prints https://example.org/?a=b
console.log(newSearchParams.toString());
// Prints a=b&a=c
// newSearchParams.toString() is implicitly called
myURL.search = newSearchParams;
console.log(myURL.href);
// Prints https://example.org/?a=b&a=c
newSearchParams.delete('a');
console.log(myURL.href);
// Prints https://example.org/?a=b&a=c
Конструкторы
URLSearchParams(init?:
URLSearchParams
| string
| Record<string, string | readonly string[]>
| Iterable<[string, string]>
| ReadonlyArray<[string, string]>
) Свойства
size: number Общее количество записей параметров.
Методы
[Symbol.iterator](): URLSearchParamsIterator<[string, string]> append(
name: string,
value: string,
): void Добавляет новую пару «имя — значение» в строку запроса.
delete(
name: string,
value?: string,
): void Если указан value, удаляет все пары «имя — значение», в которых имя равно name, а значение равно value.
Если value не указан, удаляет все пары «имя — значение» с именем name.
entries(): URLSearchParamsIterator<[string, string]> Возвращает итератор ES6 Iterator для каждой пары «имя — значение» в запросе. Каждый элемент итератора — это объект JavaScript Array. Первый элемент Array — это name, второй элемент Array — это value.
Псевдоним для urlSearchParams[@@iterator]().
forEach<TThis = this>(
fn: () => void,
thisArg?: TThis,
): void Перебирает каждую пару «имя — значение» в запросе и вызывает указанную функцию.
const myURL = new URL('https://example.org/?a=b&c=d');
myURL.searchParams.forEach((value, name, searchParams) => {
console.log(name, value, myURL.searchParams === searchParams);
});
// Prints:
// a b true
// c d true
get(name: string): string | null Возвращает значение первой пары «имя — значение», имя которой равно name. Если таких пар нет, возвращается null.
getAll(name: string): string[] Возвращает значения всех пар «имя — значение», имя которых равно name. Если таких пар нет, возвращается пустой массив.
has(
name: string,
value?: string,
): boolean Проверяет, содержит ли объект URLSearchParams пару(ы) «ключ — значение» на основе name и необязательного аргумента value.
Если указан value, возвращает true, когда существует пара «имя — значение» с такими же name и value.
Если value не указан, возвращает true, если существует хотя бы одна пара «имя — значение» с именем name.
keys(): URLSearchParamsIterator<string> Возвращает итератор ES6 Iterator по именам каждой пары «имя — значение».
const params = new URLSearchParams('foo=bar&foo=baz');
for (const name of params.keys()) {
console.log(name);
}
// Prints:
// foo
// foo
set(
name: string,
value: string,
): void Устанавливает в объекте URLSearchParams значение value, связанное с name. Если уже существуют пары «имя — значение» с именем name, значение первой такой пары заменяется на value, а остальные удаляются. Если таких пар нет, пара «имя — значение» добавляется в строку запроса.
const params = new URLSearchParams();
params.append('foo', 'bar');
params.append('foo', 'baz');
params.append('abc', 'def');
console.log(params.toString());
// Prints foo=bar&foo=baz&abc=def
params.set('foo', 'def');
params.set('xyz', 'opq');
console.log(params.toString());
// Prints foo=def&abc=def&xyz=opq
sort(): void Сортирует все существующие пары «имя — значение» на месте по именам. Сортировка выполняется с помощью устойчивого алгоритма сортировки, поэтому относительный порядок пар «имя — значение» с одинаковым именем сохраняется.
Этот метод можно использовать, в частности, для увеличения числа попаданий в кэш.
const params = new URLSearchParams('query[]=abc&type=search&query[]=123');
params.sort();
console.log(params.toString());
// Prints query%5B%5D=abc&query%5B%5D=123&type=search
toString(): string Возвращает параметры поиска в виде строки, выполняя процентное кодирование символов при необходимости.
values(): URLSearchParamsIterator<string> Возвращает итератор ES6 Iterator по значениям каждой пары «имя — значение».
интерфейс URLSearchParams
переменная URLSearchParams
URLSearchParams class is a global reference for import { URLSearchParams } from 'node:url' https://nodejs.org/api/url.html#class-urlsearchparams
Тип
globalThis extends { onmessage: any; URLSearchParams: infer T; } ? T : _URLSearchParams функция domainToASCII
Использование в Deno
import { domainToASCII } from "node:url";
domainToASCII(domain: string): stringВозвращает ASCII-представление domain в формате Punycode. Если domain — недопустимый домен, возвращается пустая строка.
Выполняет операцию, обратную domainToUnicode.
import url from 'node:url';
console.log(url.domainToASCII('español.com'));
// Prints xn--espaol-zwa.com
console.log(url.domainToASCII('中文.com'));
// Prints xn--fiq228c.com
console.log(url.domainToASCII('xn--iñvalid.com'));
// Prints an empty string
Параметры
domain: string Тип возвращаемого значения
string функция domainToUnicode
Использование в Deno
import { domainToUnicode } from "node:url";
domainToUnicode(domain: string): stringВозвращает представление domain в кодировке Unicode. Если domain — недопустимый домен, возвращается пустая строка.
Выполняет операцию, обратную domainToASCII.
import url from 'node:url';
console.log(url.domainToUnicode('xn--espaol-zwa.com'));
// Prints español.com
console.log(url.domainToUnicode('xn--fiq228c.com'));
// Prints 中文.com
console.log(url.domainToUnicode('xn--iñvalid.com'));
// Prints an empty string
Параметры
domain: string Тип возвращаемого значения
string функция fileURLToPath
Использование в Deno
import { fileURLToPath } from "node:url";
fileURLToPath(
url: string | URL,
options?: FileUrlToPathOptions,
): stringЭта функция обеспечивает корректное декодирование символов с процентным кодированием, а также гарантирует получение допустимой абсолютной строки пути, совместимой с разными платформами.
import { fileURLToPath } from 'node:url';
const __filename = fileURLToPath(import.meta.url);
new URL('file:///C:/path/').pathname; // Incorrect: /C:/path/
fileURLToPath('file:///C:/path/'); // Correct: C:\path\ (Windows)
new URL('file://nas/foo.txt').pathname; // Incorrect: /foo.txt
fileURLToPath('file://nas/foo.txt'); // Correct: \\nas\foo.txt (Windows)
new URL('file:///你好.txt').pathname; // Incorrect: /%E4%BD%A0%E5%A5%BD.txt
fileURLToPath('file:///你好.txt'); // Correct: /你好.txt (POSIX)
new URL('file:///hello world').pathname; // Incorrect: /hello%20world
fileURLToPath('file:///hello world'); // Correct: /hello world (POSIX)
Параметры
url: string | URL Строка URL файла или объект URL, который необходимо преобразовать в путь.
options: FileUrlToPathOptions Возвращаемый тип
string Полностью разрешённый путь к файлу Node.js, специфичный для платформы.
функция format
Использование в Deno
import { format } from "node:url";
Перегрузка 1
format(
urlObject: URL,
options?: URLFormatOptions,
): stringМетод url.format() возвращает отформатированную строку URL, полученную из urlObject.
import url from 'node:url';
url.format({
protocol: 'https',
hostname: 'example.com',
pathname: '/some/path',
query: {
page: 1,
format: 'json',
},
});
// => 'https://example.com/some/path?page=1&format=json'
Если urlObject не является объектом или строкой, url.format() выбросит TypeError.
Форматирование выполняется следующим образом:
- Создаётся новая пустая строка
result. - Если
urlObject.protocolявляется строкой, она без изменений добавляется кresult. - В противном случае, если
urlObject.protocolне являетсяundefinedи не является строкой, выбрасываетсяError. - Для всех строковых значений
urlObject.protocol, которые не заканчиваются двоеточием ASCII (символ:), кresultбудет добавлена литеральная строка:. - Если выполняется хотя бы одно из следующих условий, к
resultбудет добавлена литеральная строка//:-
свойство
urlObject.slashesимеет значение true; -
urlObject.protocolначинается сhttp,https,ftp,gopherилиfile;
-
свойство
- Если значение свойства
urlObject.authявляется истинным, аurlObject.hostилиurlObject.hostnameне равныundefined, значениеurlObject.authбудет приведено к строке и добавлено кresult, после чего будет добавлена литеральная строка@. - Если свойство
urlObject.hostравноundefined, то:- Если
urlObject.hostnameявляется строкой, она добавляется кresult. - В противном случае, если
urlObject.hostnameне являетсяundefinedи не является строкой, выбрасываетсяError. - Если значение свойства
urlObject.portявляется истинным, аurlObject.hostnameне равноundefined: * литеральная строка:добавляется кresult, и * значениеurlObject.portприводится к строке и добавляется кresult.
- Если
- В противном случае, если значение свойства
urlObject.hostявляется истинным, значениеurlObject.hostприводится к строке и добавляется кresult. - Если свойство
urlObject.pathnameявляется строкой, отличной от пустой:- Если
urlObject.pathnameне начинается с прямой косой черты ASCII (/), кresultдобавляется литеральная строка'/'. - Значение
urlObject.pathnameдобавляется кresult.
- Если
- В противном случае, если
urlObject.pathnameне являетсяundefinedи не является строкой, выбрасываетсяError. - Если свойство
urlObject.searchравноundefined, а свойствоurlObject.queryявляетсяObject, кresultдобавляется литеральная строка?, за которой следует результат вызова методаstringify()модуляquerystringсо значениемurlObject.query. - В противном случае, если
urlObject.searchявляется строкой:- Если значение
urlObject.searchне начинается со знака вопроса ASCII (символ?), кresultдобавляется литеральная строка?. - Значение
urlObject.searchдобавляется кresult.
- Если значение
- В противном случае, если
urlObject.searchне являетсяundefinedи не является строкой, выбрасываетсяError. - Если свойство
urlObject.hashявляется строкой:- Если значение
urlObject.hashне начинается с символа решётки ASCII (#), кresultдобавляется литеральная строка#. - Значение
urlObject.hashдобавляется кresult.
- Если значение
- В противном случае, если свойство
urlObject.hashне равноundefinedи не является строкой, выбрасываетсяError. -
Возвращается
result.
Параметры
urlObject: URL Объект URL (возвращаемый url.parse() или созданный другим способом). Если передана строка, она преобразуется в объект путём передачи в url.parse().
options: URLFormatOptions Возвращаемый тип
string Перегрузка 2
format(urlObject: UrlObject | string): stringМетод url.format() возвращает отформатированную строку URL, полученную из urlObject.
import url from 'node:url';
url.format({
protocol: 'https',
hostname: 'example.com',
pathname: '/some/path',
query: {
page: 1,
format: 'json',
},
});
// => 'https://example.com/some/path?page=1&format=json'
Если urlObject не является объектом или строкой, url.format() выбросит TypeError.
Форматирование выполняется следующим образом:
- Создаётся новая пустая строка
result. - Если
urlObject.protocolявляется строкой, она без изменений добавляется кresult. - В противном случае, если
urlObject.protocolне являетсяundefinedи не является строкой, выбрасываетсяError. - Для всех строковых значений
urlObject.protocol, которые не заканчиваются двоеточием ASCII (символ:), кresultбудет добавлена литеральная строка:. - Если выполняется хотя бы одно из следующих условий, к
resultбудет добавлена литеральная строка//:-
свойство
urlObject.slashesимеет значение true; -
urlObject.protocolначинается сhttp,https,ftp,gopherилиfile;
-
свойство
- Если значение свойства
urlObject.authявляется истинным, аurlObject.hostилиurlObject.hostnameне равныundefined, значениеurlObject.authбудет приведено к строке и добавлено кresult, после чего будет добавлена литеральная строка@. - Если свойство
urlObject.hostравноundefined, то:- Если
urlObject.hostnameявляется строкой, она добавляется кresult. - В противном случае, если
urlObject.hostnameне являетсяundefinedи не является строкой, выбрасываетсяError. - Если значение свойства
urlObject.portявляется истинным, аurlObject.hostnameне равноundefined: * литеральная строка:добавляется кresult, и * значениеurlObject.portприводится к строке и добавляется кresult.
- Если
- В противном случае, если значение свойства
urlObject.hostявляется истинным, значениеurlObject.hostприводится к строке и добавляется кresult. - Если свойство
urlObject.pathnameявляется строкой, отличной от пустой:- Если
urlObject.pathnameне начинается с прямой косой черты ASCII (/), кresultдобавляется литеральная строка'/'. - Значение
urlObject.pathnameдобавляется кresult.
- Если
- В противном случае, если
urlObject.pathnameне являетсяundefinedи не является строкой, выбрасываетсяError. - Если свойство
urlObject.searchравноundefined, а свойствоurlObject.queryявляетсяObject, кresultдобавляется литеральная строка?, за которой следует результат вызова методаstringify()модуляquerystringсо значениемurlObject.query. - В противном случае, если
urlObject.searchявляется строкой:- Если значение
urlObject.searchне начинается со знака вопроса ASCII (символ?), кresultдобавляется литеральная строка?. - Значение
urlObject.searchдобавляется кresult.
- Если значение
- В противном случае, если
urlObject.searchне являетсяundefinedи не является строкой, выбрасываетсяError. - Если свойство
urlObject.hashявляется строкой:- Если значение
urlObject.hashне начинается с символа решётки ASCII (#), кresultдобавляется литеральная строка#. - Значение
urlObject.hashдобавляется кresult.
- Если значение
- В противном случае, если свойство
urlObject.hashне равноundefinedи не является строкой, выбрасываетсяError. -
Возвращается
result.
Параметры
urlObject: UrlObject | string Объект URL (возвращаемый url.parse() или созданный другим способом). Если передана строка, она преобразуется в объект путём передачи в url.parse().
Возвращаемый тип
string функция parse
Использование в Deno
import { parse } from "node:url";
Перегрузка 1
parse(urlString: string): UrlWithStringQueryМетод url.parse() принимает строку URL, анализирует ее и возвращает объект URL.
Выбрасывается исключение TypeError, если urlString не является строкой.
Выбрасывается исключение URIError, если свойство auth присутствует, но его не удается декодировать.
url.parse() использует снисходительный нестандартный алгоритм анализа строк URL. Он подвержен таким проблемам безопасности, как подмена имени хоста и некорректная обработка имен пользователей и паролей. Не используйте его с недоверенными данными. CVE для уязвимостей url.parse() не присваиваются. Вместо этого используйте API WHATWG URL.
Параметры
urlString: string Строка URL для анализа.
Тип возвращаемого значения
Перегрузка 2
parse(
urlString: string,
parseQueryString: false | undefined,
slashesDenoteHost?: boolean,
): UrlWithStringQueryПараметры
urlString: string parseQueryString: false | undefined slashesDenoteHost: boolean Тип возвращаемого значения
Перегрузка 3
parse(
urlString: string,
parseQueryString: true,
slashesDenoteHost?: boolean,
): UrlWithParsedQueryПараметры
urlString: string parseQueryString: true slashesDenoteHost: boolean Тип возвращаемого значения
Перегрузка 4
функция pathToFileURL
Использование в Deno
import { pathToFileURL } from "node:url";
pathToFileURL(
path: string,
options?: PathToFileUrlOptions,
): URLЭта функция гарантирует, что path разрешается в абсолютный путь, а управляющие символы URL корректно кодируются при преобразовании в URL файла.
import { pathToFileURL } from 'node:url';
new URL('/foo#1', 'file:'); // Incorrect: file:///foo#1
pathToFileURL('/foo#1'); // Correct: file:///foo%231 (POSIX)
new URL('/some/path%.c', 'file:'); // Incorrect: file:///some/path%.c
pathToFileURL('/some/path%.c'); // Correct: file:///some/path%25.c (POSIX)
Параметры
path: string Путь для преобразования в URL файла.
options: PathToFileUrlOptions Тип возвращаемого значения
Объект URL файла.
функция resolve
Использование в Deno
import { resolve } from "node:url";
resolve(
from: string,
to: string,
): stringМетод url.resolve() разрешает целевой URL относительно базового URL аналогично тому, как веб-браузер разрешает адрес в теге привязки.
import url from 'node:url';
url.resolve('/one/two/three', 'four'); // '/one/two/four'
url.resolve('http://example.com/', '/one'); // 'http://example.com/one'
url.resolve('http://example.com/one', '/two'); // 'http://example.com/two'
Чтобы получить тот же результат с помощью API URL WHATWG:
function resolve(from, to) {
const resolvedUrl = new URL(to, new URL(from, 'resolve://'));
if (resolvedUrl.protocol === 'resolve:') {
// `from` is a relative URL.
const { pathname, search, hash } = resolvedUrl;
return pathname + search + hash;
}
return resolvedUrl.toString();
}
resolve('/one/two/three', 'four'); // '/one/two/four'
resolve('http://example.com/', '/one'); // 'http://example.com/one'
resolve('http://example.com/one', '/two'); // 'http://example.com/two'
Параметры
from: string Базовый URL, используемый, если to является относительным URL.
to: string Целевой URL для разрешения.
Тип возвращаемого значения
string функция urlToHttpOptions
Использование в Deno
import { urlToHttpOptions } from "node:url";
urlToHttpOptions(url: URL): ClientRequestArgsЭта вспомогательная функция преобразует объект URL в обычный объект параметров, ожидаемый API http.request() и https.request().
import { urlToHttpOptions } from 'node:url';
const myURL = new URL('https://a:b@測試?abc#foo');
console.log(urlToHttpOptions(myURL));
/*
{
protocol: 'https:',
hostname: 'xn--g6w251d',
hash: '#foo',
search: '?abc',
pathname: '/',
path: '/?abc',
href: 'https://a:b@xn--g6w251d/?abc#foo',
auth: 'a:b'
}
Параметры
url: URL Объект WHATWG URL для преобразования в объект параметров.
Тип возвращаемого значения
Объект параметров
интерфейс FileUrlToPathOptions
Использование в Deno
import { type FileUrlToPathOptions } from "node:url";
Свойства
windows: boolean | undefined true, если path следует вернуть в виде пути Windows, false для POSIX и undefined для системы по умолчанию.
интерфейс Global
Использование в Deno
import { type Global } from "node:url";
Свойства
URL: _URL URLSearchParams: _URLSearchParams интерфейс PathToFileUrlOptions
Использование в Deno
import { type PathToFileUrlOptions } from "node:url";
Свойства
windows: boolean | undefined true if the path should be return as a windows filepath, false for posix, and undefined for the system default.
интерфейс Url
Использование в Deno
import { type Url } from "node:url";
интерфейс URLFormatOptions
Использование в Deno
import { type URLFormatOptions } from "node:url";
Свойства
auth: boolean | undefined true if the serialized URL string should include the username and password, false otherwise.
fragment: boolean | undefined true if the serialized URL string should include the fragment, false otherwise.
search: boolean | undefined true if the serialized URL string should include the search query, false otherwise.
unicode: boolean | undefined true if Unicode characters appearing in the host component of the URL string should be encoded directly as opposed to being Punycode encoded.
интерфейс UrlObject
Использование в Deno
import { type UrlObject } from "node:url";
Свойства
auth:
string
| null
| undefined
hash:
string
| null
| undefined
host:
string
| null
| undefined
hostname:
string
| null
| undefined
href:
string
| null
| undefined
pathname:
string
| null
| undefined
protocol:
string
| null
| undefined
search:
string
| null
| undefined
slashes:
boolean
| null
| undefined
port:
string
| number
| null
| undefined
query: интерфейс URLSearchParamsIterator
Использование в Deno
import { type URLSearchParamsIterator } from "node:url";
Параметры типа
T Методы
интерфейс UrlWithParsedQuery
Использование в Deno
import { type UrlWithParsedQuery } from "node:url";
Свойства
интерфейс UrlWithStringQuery
Использование в Deno
import { type UrlWithStringQuery } from "node:url";
Свойства
query: string | null
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/url