Spec-Zone.ru › Node.js 22 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 <string>

Метод 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 <string> Строка запроса URL для разбора
  • sep <string> Подстрока, используемая для разделения пар ключ-значение в строке запроса. По умолчанию: '&'.
  • eq <string>. Подстрока, используемая для разделения ключей и значений в строке запроса. По умолчанию: '='.
  • options <Object>
    • decodeURIComponent <Function> Функция, используемая для декодирования символов, закодированных в процентном формате, в строке запроса. По умолчанию: querystring.unescape().
    • maxKeys <number> Задает максимальное количество разбираемых ключей. Укажите 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 <Object> Объект для сериализации в строку запроса URL
  • sep <string> Подстрока, используемая для разделения пар ключ-значение в строке запроса. По умолчанию: '&'.
  • eq <string>. Подстрока, используемая для разделения ключей и значений в строке запроса. По умолчанию: '='.
  • options
    • encodeURIComponent <Function> Функция, используемая для преобразования небезопасных для URL символов в строке запроса в символы, закодированные в процентном формате. По умолчанию: querystring.escape().

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

Метод сериализует следующие типы значений, переданных в obj: <string> | <number> | <bigint> | <boolean> | <string[]> | <number[]> | <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 <string>

Метод 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-v22.x/docs/api/querystring.html

Spec-Zone.ru

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