Spec-Zone.ru › Node.js 10 LTS

Строка запроса

Устойчивость: 2 - Стабильно

Модуль querystring предоставляет утилиты для разбора и форматирования строк запроса URL. К нему можно обратиться, используя:

const querystring = require('querystring');

querystring.decode()

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

Функция querystring.decode() является псевдонимом для функции querystring.parse().

querystring.encode()

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

Функция querystring.encode() является псевдонимом для функции querystring.stringify().

querystring.escape(str)

Добавлена в: v0.1.25
  • str <строка>

Метод querystring.escape() выполняет URL-кодирование процентов для заданной str способом, оптимизированным для конкретных требований строк запроса URL.

Метод querystring.escape() используется функциями querystring.stringify() и, как правило, не предназначен для прямого использования. Он экспортируется в первую очередь для того, чтобы код приложения мог предоставить альтернативную реализацию кодирования процентов, если это необходимо, назначив querystring.escape альтернативной функции.

querystring.parse(str[, sep[, eq[, options]]])

История
Версия Изменения
v8.0.0

Теперь корректно разбираются несколько пустых записей (например, &=&=).

v6.0.0

Возвращаемый объект больше не наследуется от Object.prototype.

v6.0.0, v4.2.4

Параметр eq теперь может иметь длину больше, чем 1.

v0.1.25

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

  • str <строка> Строка запроса URL для разбора
  • sep <строка> Подстрока, используемая для разделения пар ключ-значение в строке запроса. По умолчанию: '&'.
  • eq <строка>. Подстрока, используемая для разделения ключей и значений в строке запроса. По умолчанию: '='.
  • options <объект>

    • decodeURIComponent <функция> Функция, используемая при декодировании символов, закодированных с процентами, в строке запроса. По умолчанию: querystring.unescape().
    • maxKeys <число> Указывает максимальное количество ключей для разбора. Укажите 0 для удаления ограничений на подсчет ключей. По умолчанию: 1000.

Метод querystring.parse() разбирает строку запроса URL (str) в набор пар ключ-значение.

Например, строка запроса 'foo=bar&abc=xyz&abc=123' разбирается следующим образом:

{
  foo: 'bar',
  abc: ['xyz', '123']
}

Объект, возвращаемый методом querystring.parse(), не наследует прототип от JavaScript Object. Это означает, что стандартные методы Object, такие как obj.toString(), obj.hasOwnProperty(), и другие, не определены и не будут работать.

По умолчанию предполагается, что символы, закодированные процентами в строке запроса, используют кодировку UTF-8. Если используется альтернативная кодировка символов, то необходимо указать альтернативный параметр decodeURIComponent:

// Assuming gbkDecodeURIComponent function already exists...

querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null,
                  { decodeURIComponent: gbkDecodeURIComponent });

querystring.stringify(obj[, sep[, eq[, options]]])

Добавлена в: v0.1.25
  • obj <объект> Объект, который нужно сериализовать в строку запроса URL
  • sep <строка> Подстрока, используемая для разделения пар ключ-значение в строке запроса. По умолчанию: '&'.
  • eq <строка>. Подстрока, используемая для разделения ключей и значений в строке запроса. По умолчанию: '='.
  • options

    • encodeURIComponent <функция> Функция, используемая при преобразовании небезопасных для URL-адресов символов в кодировку процентов в строке запроса. По умолчанию: querystring.escape().

Метод querystring.stringify() создаёт строку запроса URL из заданного obj, перебирая «собственные свойства» объекта.

Он сериализует следующие типы значений, переданных в obj: <строка> | <число> | <логическое значение> | <массив строк> | <массив чисел> | <массив логических значений> Любые другие входные значения будут преобразованы в пустые строки.

querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });
// returns 'foo=bar&baz=qux&baz=quux&corge='

querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':');
// returns 'foo:bar;baz:qux'

По умолчанию символы, требующие кодирования процентов в строке запроса, будут закодированы как UTF-8. Если требуется другая кодировка, необходимо указать другой параметр encodeURIComponent:

// Assuming gbkEncodeURIComponent function already exists,

querystring.stringify({ w: '中文', foo: 'bar' }, null, null,
                      { encodeURIComponent: gbkEncodeURIComponent });

querystring.unescape(str)

Добавлена в: v0.1.25
  • str <строка>

Метод querystring.unescape() выполняет декодирование символов, закодированных процентами URL, в заданной str.

Метод querystring.unescape() используется методом querystring.parse() и обычно не предназначен для прямого использования. Он экспортируется в первую очередь для того, чтобы код приложения мог предоставить альтернативную реализацию декодирования, если это необходимо, назначив querystring.unescape альтернативной функции.

По умолчанию метод querystring.unescape() попытается использовать встроенный в JavaScript метод decodeURIComponent() для декодирования. Если это не удастся, будет использована более безопасная альтернатива, которая не будет выбрасывать исключение при некорректном URL.

© 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-v10.x/docs/api/querystring.html

Spec-Zone.ru

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