Spec-Zone.ru › Node.js 16 LTS

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

Устойчивость: 3 - Устаревшая

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

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

const querystring = require('querystring');

API querystring считается устаревшим. Хотя он все еще поддерживается, новый код должен использовать 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']
}

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

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

Spec-Zone.ru

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