URL
Работа с URL: извлечение данных и управление параметрами запроса.
Например, URL
интерфейс URL
Интерфейс URL представляет объект, предоставляющий статические методы для создания, разбора и обработки URL в Deno.
Используйте API URL для безопасного разбора, создания, нормализации и кодирования URL. Это предпочтительный способ работы с URL в Deno, а не ручная обработка строк, которая может привести к ошибкам и проблемам безопасности.
Свойства
hash: string Свойство hash интерфейса URL — это строка, которая начинается с #, за которым следует идентификатор фрагмента URL. Если URL не содержит идентификатора фрагмента, возвращается пустая строка.
host: string Свойство host интерфейса URL — это строка, содержащая URL.hostname и URL.port, если он указан в URL. Для этого добавляется :, за которым следует номер порта.
hostname: string Свойство hostname интерфейса URL — это строка, представляющая полное доменное имя URL.
href: string Свойство href интерфейса URL — это строка, представляющая URL целиком.
origin: string Свойство origin интерфейса URL — это строка, представляющая источник URL, то есть URL.protocol, URL.host и URL.port.
password: string Свойство password интерфейса URL — это строка, представляющая пароль, указанный в URL.
pathname: string Свойство pathname интерфейса URL — это строка, представляющая путь URL.
port: string Свойство port интерфейса URL — это строка, представляющая порт URL, если в URL явно указан порт.
protocol: string Свойство protocol интерфейса URL — это строка, представляющая схему протокола URL и заканчивающаяся символом :.
search: string Свойство search интерфейса URL — это строка поиска, или строка запроса, URL. Она включает символ ?, но не включает идентификаторы внутри представленного ресурса, такие как URL.hash. Более гибкое управление доступно через свойство URL.searchParams.
searchParams: URLSearchParams Свойство searchParams интерфейса URL предоставляет прямой доступ к параметрам запроса через объект URLSearchParams.
Это свойство удобно использовать для следующих задач:
- Разбор параметров запроса URL
- Обработка строк запроса
- Добавление, изменение или удаление параметров URL
- Работа с данными формы в формате URL-кодирования
- Автоматическая обработка кодирования и декодирования строк запроса
username: string Свойство username интерфейса URL — это строка, представляющая имя пользователя в URL.
Методы
См. также
переменная URL
Интерфейс URL представляет объект, предоставляющий статические методы для создания, разбора и обработки URL.
Свойства
Методы
Разбирает строку URL или объект URL и возвращает объект URL.
Возвращает логическое значение, указывающее, является ли строка URL допустимой и может ли она быть разобрана.
createObjectURL(blob: Blob): string Создает уникальный временный URL, представляющий заданный объект Blob, File или MediaSource.
Этот метод особенно полезен для следующих задач:
- Создание URL для динамически сгенерированного содержимого
- Работа с объектами Blob в контексте браузера
- Создание рабочих потоков на основе динамически сгенерированного кода
- Создание временных ссылок URL для загрузки файлов
Примечание: всегда вызывайте URL.revokeObjectURL(), когда URL больше не нужен, чтобы избежать утечек памяти.
revokeObjectURL(url: string): void Отзывает ранее созданный URL объекта, освобождая связанную с ним память.
Это важно для управления памятью в приложениях, создающих динамические URL. После отзыва URL объекта:
- Его больше нельзя использовать для получения содержимого, на которое он ссылался
- Браузер или среда выполнения может освободить связанную с ним память или ресурсы
- Рабочие потоки, созданные с помощью URL, продолжат выполняться, но этот URL станет недействительным для создания новых объектов
Для обеспечения безопасности и производительности приложений Deno всегда отзывайте URL объектов сразу после того, как они перестанут быть нужны, особенно при обработке больших файлов или создании множества URL.
См. также
интерфейс URLPattern
API URLPattern предоставляет примитив веб-платформы для сопоставления URL с использованием удобного синтаксиса шаблонов.
Типичные варианты использования URLPattern:
- Создание маршрутизаторов для веб-приложений
- Сопоставление URL с шаблонами для промежуточного ПО
- Извлечение параметров из путей URL
- Переключатели функций на основе URL
- Маршрутизация в бессерверных и периферийных функциях
Синтаксис основан на path-to-regexp и поддерживает подстановочные знаки, именованные группы захвата, регулярные группы и модификаторы групп — подобно шаблонам маршрутов Express.js.
Примеры
// Basic routing with URLPattern (similar to Express.js)
const routes = [
new URLPattern({ pathname: "/users" }),
new URLPattern({ pathname: "/users/:id" }),
new URLPattern({ pathname: "/products/:category/:id?" }),
];
// Check incoming request against routes
function handleRequest(req: Request) {
const url = new URL(req.url);
for (const route of routes) {
const match = route.exec(url);
if (match) {
// Extract parameters from the URL
const params = match.pathname.groups;
return new Response(`Matched: ${JSON.stringify(params)}`);
}
}
return new Response("Not found", { status: 404 });
}
// Matching different URL parts
const apiPattern = new URLPattern({
protocol: "https",
hostname: "api.example.com",
pathname: "/v:version/:resource/:id?",
search: "*", // Match any query string
});
const match = apiPattern.exec("https://api.example.com/v1/users/123?format=json");
if (match) {
console.log(match.pathname.groups.version); // "1"
console.log(match.pathname.groups.resource); // "users"
console.log(match.pathname.groups.id); // "123"
}
Свойства
protocol: string Строка шаблона для protocol.
username: string Строка шаблона для username.
password: string Строка шаблона для password.
hostname: string Строка шаблона для hostname.
port: string Строка шаблона для port.
pathname: string Строка шаблона для pathname.
search: string Строка шаблона для search.
hash: string Строка шаблона для hash.
hasRegExpGroups: boolean Используются ли в каких-либо указанных группах группы регулярных выражений.
Методы
test(
input: URLPatternInput,
baseURL?: string,
): boolean Проверяет, соответствует ли указанный вход сохранённому шаблону.
Входные данные можно передать в виде абсолютной строки URL с необязательной базой, относительной строки URL с обязательной базой или отдельных компонентов в виде объекта URLPatternInit.
const pattern = new URLPattern("https://example.com/books/:id");
// Test an absolute url string.
console.log(pattern.test("https://example.com/books/123")); // true
// Test a relative url with a base.
console.log(pattern.test("/books/123", "https://example.com")); // true
// Test an object of url components.
console.log(pattern.test({ pathname: "/books/123" })); // true
exec(
input: URLPatternInput,
baseURL?: string,
): URLPatternResult | null Сопоставляет указанные входные данные с сохранённым шаблоном.
Входные данные можно передать в виде абсолютной строки URL с необязательной базой, относительной строки URL с обязательной базой или отдельных компонентов в виде объекта URLPatternInit.
const pattern = new URLPattern("https://example.com/books/:id");
// Match an absolute url string.
let match = pattern.exec("https://example.com/books/123");
console.log(match.pathname.groups.id); // 123
// Match a relative url with a base.
match = pattern.exec("/books/123", "https://example.com");
console.log(match.pathname.groups.id); // 123
// Match an object of url components.
match = pattern.exec({ pathname: "/books/123" });
console.log(match.pathname.groups.id); // 123
переменная URLPattern
API URLPattern предоставляет примитив веб-платформы для сопоставления URL с использованием удобного синтаксиса шаблонов.
Синтаксис основан на path-to-regexp. Поддерживаются подстановочные знаки, именованные группы захвата, регулярные группы и модификаторы групп.
// Specify the pattern as structured data.
const pattern = new URLPattern({ pathname: "/users/:user" });
const match = pattern.exec("https://blog.example.com/users/joe");
console.log(match.pathname.groups.user); // joe
// Specify a fully qualified string pattern.
const pattern = new URLPattern("https://example.com/books/:id");
console.log(pattern.test("https://example.com/books/123")); // true
console.log(pattern.test("https://deno.land/books/123")); // false
// Specify a relative string pattern with a base URL.
const pattern = new URLPattern("/article/:id", "https://blog.example.com");
console.log(pattern.test("https://blog.example.com/article")); // false
console.log(pattern.test("https://blog.example.com/article/123")); // true
Свойства
prototype: URLPattern интерфейс URLPatternComponentResult
интерфейс URLPatternInit
интерфейс URLPatternOptions
Параметры конструктора URLPattern.
Свойства
ignoreCase: boolean = false Включает сопоставление без учёта регистра.
интерфейс URLPatternResult
URLPatternResult — объект, возвращаемый URLPattern.exec.
Свойства
inputs: [URLPatternInit] | [URLPatternInit, string] Входные данные, переданные при сопоставлении.
Результат сопоставления для сопоставителя protocol.
Результат сопоставления для сопоставителя username.
Результат сопоставления для сопоставителя password.
Результат сопоставления для сопоставителя hostname.
Результат сопоставления для сопоставителя port.
Результат сопоставления для сопоставителя pathname.
Результат сопоставления для сопоставителя search.
Результат сопоставления для сопоставителя hash.
интерфейс URLSearchParams
URLSearchParams предоставляет методы для работы со строкой запроса URL.
Используйте этот интерфейс, чтобы:
- Разбирать параметры запроса из URL
- Создавать и изменять строки запроса
- Обрабатывать данные формы (при использовании с FormData)
- Безопасно кодировать и декодировать значения параметров URL
Свойства
size: number Содержит количество параметров запроса
searchParams.size
Методы
append(
name: string,
value: string,
): void Добавляет указанную пару «ключ/значение» как новый параметр запроса.
let searchParams = new URLSearchParams();
searchParams.append('name', 'first');
searchParams.append('name', 'second');
delete(
name: string,
value?: string,
): void Удаляет из списка всех параметров запроса параметры, соответствующие имени и, при наличии, значению.
let searchParams = new URLSearchParams([['name', 'value']]);
searchParams.delete('name');
searchParams.delete('name', 'value');
getAll(name: string): string[] Возвращает в виде массива все значения, связанные с указанным параметром запроса.
searchParams.getAll('name');
get(name: string): string | null Возвращает первое значение, связанное с указанным параметром запроса.
searchParams.get('name');
has(
name: string,
value?: string,
): boolean Возвращает логическое значение, указывающее, существует ли указанный параметр или пара «параметр/значение».
searchParams.has('name');
searchParams.has('name', 'value');
set(
name: string,
value: string,
): void Задает указанное значение для данного параметра запроса. Если найдено несколько совпадающих значений, этот метод удаляет остальные. Если параметр запроса не существует, этот метод создает его.
searchParams.set('name', 'value');
sort(): void Сортирует на месте все пары «ключ/значение» в этом объекте и возвращает undefined. Порядок сортировки определяется кодовыми точками Unicode ключей.
searchParams.sort();
forEach(
callbackfn: (
value: string,
key: string,
parent: this,
) => void,
thisArg?: any,
): void Вызывает функцию для каждого элемента этого объекта и возвращает undefined. В качестве второго аргумента можно указать объект, который будет использоваться как this при вызове функции обратного вызова.
const params = new URLSearchParams([["a", "b"], ["c", "d"]]);
params.forEach((value, key, parent) => {
console.log(value, key, parent);
});
keys(): URLSearchParamsIterator<string> Возвращает итератор, позволяющий перебрать все ключи этого объекта.
const params = new URLSearchParams([["a", "b"], ["c", "d"]]);
for (const key of params.keys()) {
console.log(key);
}
values(): URLSearchParamsIterator<string> Возвращает итератор, позволяющий перебрать все значения этого объекта.
const params = new URLSearchParams([["a", "b"], ["c", "d"]]);
for (const value of params.values()) {
console.log(value);
}
entries(): URLSearchParamsIterator<[string, string]> Возвращает итератор, позволяющий перебрать все пары «ключ/значение» этого объекта.
const params = new URLSearchParams([["a", "b"], ["c", "d"]]);
for (const [key, value] of params.entries()) {
console.log(key, value);
}
[[Symbol.iterator]](): URLSearchParamsIterator<[string, string]> Возвращает итератор, позволяющий перебрать все пары «ключ/значение» этого объекта.
const params = new URLSearchParams([["a", "b"], ["c", "d"]]);
for (const [key, value] of params) {
console.log(key, value);
}
toString(): string Возвращает строку запроса, подходящую для использования в URL.
searchParams.toString();
переменная URLSearchParams
Интерфейс URLSearchParams определяет вспомогательные методы для работы со строкой запроса URL. Объект, реализующий URLSearchParams, можно напрямую использовать в структуре for...of для перебора пар «ключ/значение» в том же порядке, в котором они указаны в строке запроса.
Свойства
prototype: URLSearchParams См. также
интерфейс URLSearchParamsIterator
Итератор для класса URLSearchParams, используемый для перебора пар «ключ/значение» в параметрах запроса.
Примеры
const url = new URL('https://example.org/path?a=1&b=2');
const queryString = url.search.substring(1); // Remove the leading '?'
const params = new URLSearchParams(queryString);
const iterator = params.entries();
console.log(iterator.next().value); // ['a', '1']
console.log(iterator.next().value); // ['b', '2']
Параметры типа
T Методы
псевдоним типа URLPatternInput
Определение
string | URLPatternInit
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/web/url