Spec-Zone.ru › Node.js 20 LTS

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

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

Исходный код: lib/querystring.js

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

const querystring = require('node:querystring'); copy

querystring обладает большей производительностью, чем <URLSearchParams>, но не является стандартизированным API. Используйте <URLSearchParams>, когда производительность не является критичной или требуется совместимость с кодом браузера.

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"]
} copy

Объект, возвращаемый методом 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 }); copy

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

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

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

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

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' copy

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

// Assuming gbkEncodeURIComponent function already exists,

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

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

Spec-Zone.ru

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