Spec-Zone.ru › Node.js 8 LTS

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

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

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

const querystring = require('querystring');

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

Spec-Zone.ru

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