Spec-Zone.ru › Node.js 4 LTS

URL

Stability: 2 - Stable

Этот модуль содержит утилиты для разрешения и разбора URL-адресов. Используйте require('url') для его использования.

Разбор URL

Объекты разобранных URL-адресов содержат некоторые или все из следующих полей, в зависимости от их наличия в строке URL. Любые части, отсутствующие в строке URL, не будут присутствовать в разобранном объекте. Примеры показаны для URL

'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'

  • href: Полный URL, который изначально был разобран. Протокол и хост приведены к нижнему регистру.

    Пример: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'

  • protocol: Протокол запроса, приведенный к нижнему регистру.

    Пример: 'http:'

  • slashes: Протокол требует слешей после двоеточия.

    Пример: true или false

  • host: Полная часть хоста URL в нижнем регистре, включая информацию о порте.

    Пример: 'host.com:8080'

  • auth: Информация об аутентификации в URL.

    Пример: 'user:pass'

  • hostname: Только имя хоста в нижнем регистре.

    Пример: 'host.com'

  • port: Номер порта.

    Пример: '8080'

  • pathname: Раздел пути URL после хоста и перед запросом, включая начальный слеш, если он присутствует. Декодирование не выполняется.

    Пример: '/p/a/t/h'

  • search: Часть «строки запроса» URL, включая ведущий знак вопроса.

    Пример: '?query=string'

  • path: Объединение pathname и search. Декодирование не выполняется.

    Пример: '/p/a/t/h?query=string'

  • query: Либо часть «params» строки запроса, либо объект, разобранный из строки запроса.

    Пример: 'query=string' или {'query':'string'}

  • hash: Часть «фрагмента» URL, включая символ решетки.

    Пример: '#hash'

Символы с Экранированием

Пробелы (' ') и следующие символы будут автоматически экранированы в свойствах объектов URL:

< > " ` \r \n \t { } | \ ^ '

Этот модуль предоставляет следующие методы:

url.format(urlObj)

Добавлен в: v0.1.25

Принимает разобранный объект URL и возвращает отформатированную строку URL.

Вот как работает процесс форматирования:

  • href будет проигнорирован.
  • path будет проигнорирован.
  • protocol обрабатывается одинаково с или без последующего : (двоеточие).
    • Протоколы http, https, ftp, gopher, file будут дополнены :// (двоеточие-слеш-слеш), если присутствуют host/hostname.
    • Все остальные протоколы mailto, xmpp, aim, sftp, foo, и т.д. будут дополнены : (двоеточие).
  • slashes будет установлено в true, если протокол требует :// (двоеточие-слеш-слеш)
    • Необходимо установить только для протоколов, не перечисленных ранее как требующие слешей, таких как mongodb://localhost:8000/, или если host/hostname отсутствуют.
  • auth будет использоваться, если присутствует.
  • hostname будет использоваться только если host отсутствует.
  • port будет использоваться только если host отсутствует.
  • host будет использоваться вместо hostname и port.
  • pathname обрабатывается одинаково с или без ведущего / (слеш).
  • query (объект; см. querystring) будет использоваться только если search отсутствует.
  • search будет использоваться вместо query.
    • Обращается одинаково с или без ведущего ? (вопросительный знак).
  • hash обрабатывается одинаково с или без ведущего # (знак решетки, якорь).

url.parse(urlStr[, parseQueryString][, slashesDenoteHost])

Добавлен в: v0.1.25

Принимает строку URL и возвращает объект.

Передайте true в качестве второго аргумента, чтобы также разобрать строку запроса с использованием модуля querystring. Если true, то свойству query всегда будет назначен объект, а свойству search — (возможно, пустая) строка. Если false, то свойство query не будет разобрано или декодировано. По умолчанию false.

Передайте true в качестве третьего аргумента, чтобы рассматривать //foo/bar как { host: 'foo', pathname: '/bar' } вместо { pathname: '//foo/bar' }. По умолчанию false.

url.resolve(from, to)

Добавлен в: v0.1.25

Принимает базовый URL и 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'

© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v4.x/docs/api/url.html

Spec-Zone.ru

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