Spec-Zone.ru › Node.js 12 LTS

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

Уровень стабильности: 2 - Стабильно

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

Модуль 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-v12.x/docs/api/querystring.html

Spec-Zone.ru

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