Spec-Zone.ru › Deno 2

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.

Методы

toString(): string

Метод toString() интерфейса URL возвращает строку, содержащую URL целиком.

toJSON(): string

Метод toJSON() интерфейса URL возвращает представление URL в формате JSON.

См. также

  • https://developer.mozilla.org/docs/Web/API/URL

переменная URL

Интерфейс URL представляет объект, предоставляющий статические методы для создания, разбора и обработки URL.

Свойства

prototype: URL
только для чтения

Методы

parse(
url: string | URL,
base?: string | URL,
): URL | null

Разбирает строку URL или объект URL и возвращает объект URL.

canParse(
url: string | URL,
base?: string | URL,
): boolean

Возвращает логическое значение, указывающее, является ли строка 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.

См. также

  • https://developer.mozilla.org/docs/Web/API/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

Свойства

input: string
groups: Record<string, string | undefined>

интерфейс URLPatternInit

Свойства

protocol: string
необязательное
username: string
необязательное
password: string
необязательное
hostname: string
необязательное
port: string
необязательное
pathname: string
необязательное
search: string
необязательное
hash: string
необязательное
baseURL: string
необязательное

интерфейс URLPatternOptions

Параметры конструктора URLPattern.

Свойства

ignoreCase: boolean = false

Включает сопоставление без учёта регистра.


интерфейс URLPatternResult

URLPatternResult — объект, возвращаемый URLPattern.exec.

Свойства

inputs: [URLPatternInit] | [URLPatternInit, string]

Входные данные, переданные при сопоставлении.

protocol: URLPatternComponentResult

Результат сопоставления для сопоставителя protocol.

username: URLPatternComponentResult

Результат сопоставления для сопоставителя username.

password: URLPatternComponentResult

Результат сопоставления для сопоставителя password.

hostname: URLPatternComponentResult

Результат сопоставления для сопоставителя hostname.

port: URLPatternComponentResult

Результат сопоставления для сопоставителя port.

pathname: URLPatternComponentResult

Результат сопоставления для сопоставителя pathname.

search: URLPatternComponentResult

Результат сопоставления для сопоставителя search.

hash: URLPatternComponentResult

Результат сопоставления для сопоставителя 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
только для чтения

См. также

  • https://developer.mozilla.org/docs/Web/API/URLSearchParams


интерфейс URLSearchParamsIterator

наследует IteratorObject<T, BuiltinIteratorReturn, unknown>

Итератор для класса 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

Методы

[[Symbol.iterator]](): URLSearchParamsIterator<T>

псевдоним типа URLPatternInput

Определение

string | URLPatternInit

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/web/url

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API