Строка запроса
Исходный код: lib/querystring.js
Модуль node:querystring предоставляет утилиты для разбора и форматирования строк запросов URL. Доступ к нему можно получить с помощью:
const querystring = require('node:querystring'); copy querystring работает быстрее, чем <URLSearchParams>, но не является стандартизированным API. Используйте <URLSearchParams>, если производительность не критична или требуется совместимость с кодом браузера.
querystring.decode()
Функция querystring.decode() является псевдонимом для querystring.parse().
querystring.encode()
Функция querystring.encode() является псевдонимом для querystring.stringify().
querystring.escape(str)
-
str<string>
Метод querystring.escape() выполняет процентное кодирование URL для заданной str способом, оптимизированным для конкретных требований строк запросов URL.
Метод querystring.escape() используется методом querystring.stringify() и, как правило, не предназначен для прямого вызова. Он экспортируется главным образом для того, чтобы код приложения при необходимости мог предоставить собственную реализацию процентного кодирования, присвоив querystring.escape альтернативную функцию.
querystring.parse(str[, sep[, eq[, options]]])
-
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]]])
-
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)
-
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-v24.x/docs/api/querystring.html