URL
Этот модуль содержит утилиты для разрешения и разбора 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)
Принимает разобранный объект 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])
Принимает строку URL и возвращает объект.
Передайте true в качестве второго аргумента, чтобы также разобрать строку запроса с использованием модуля querystring. Если true, то свойству query всегда будет назначен объект, а свойству search — (возможно, пустая) строка. Если false, то свойство query не будет разобрано или декодировано. По умолчанию false.
Передайте true в качестве третьего аргумента, чтобы рассматривать //foo/bar как { host: 'foo', pathname: '/bar' } вместо { pathname: '//foo/bar' }. По умолчанию false.
url.resolve(from, to)
Принимает базовый 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