Node.js | querystring.parse () Метод

Опубликовано: 1 Августа, 2021

Метод querystring.parse () используется для синтаксического анализа строки запроса URL-адреса в объект, который содержит ключ и значения пары URL-адреса запроса. Возвращаемый объект не наследует прототипы от объекта JavaScript, поэтому обычные методы Object не будут работать. Во время синтаксического анализа предполагается формат кодировки UTF-8, если нет альтернативного формата кодировки символов. Чтобы декодировать альтернативную кодировку символов, необходимо указать параметр decodeURIComponent.

Синтаксис:

 querystring.parse (str [, sep [, eq [, options]]]))

Параметры: эта функция принимает четыре параметра, как указано выше и описано ниже:

  • str: это строка, указывающая URL-запрос, который необходимо проанализировать.
  • sep: это строка, определяющая подстроку, используемую для разделения пар ключ и значение в указанной строке запроса. Значение по умолчанию - «&».
  • eq: это строка, определяющая подстроку, используемую для разделения ключей и значений в указанной строке запроса. Значение по умолчанию - «=».
  • options: это объект, который можно использовать для изменения поведения метода. Имеет следующие параметры:
    • decodeURIComponent: это функция, которая будет использоваться для декодирования закодированных в процентах символов в строке запроса. Значение по умолчанию - querystring.unescape ().
    • maxKeys: это число, указывающее максимальное количество ключей, которые должны быть проанализированы из строки запроса. Значение «0» снимет все ограничения подсчета. Значение по умолчанию - «1000».

Возвращаемое значение: он возвращает объект, пары ключей и значений которого были проанализированы из строки запроса.

Примеры ниже иллюстрируют метод querystring.parse () в Node.js:

Пример 1:

Node.js




// Import the querystring module
const querystring = require( "querystring" );
// Specify the URL query string
// to be parsed
let urlQuery =
"username=user1&units=kgs&units=pounds&permission=false" ;
// Use the parse() method on the string
let parsedObject = querystring.parse(urlQuery);
console.log( "Parsed Query:" , parsedObject);
// Use the parse() method on the string
// with sep as `&&` and eq as `-`
urlQuery =
"username-user1&&units-kgs&&units-pounds&&permission-false" ;
parsedObject = querystring.parse(urlQuery, "&&" , "-" );
console.log( " Parsed Query:" , parsedObject);

Выход:

 Анализируемый запрос: [Объект: нулевой прототип] {
  имя пользователя: 'user1',
  единицы: [килограммы, фунты],
  разрешение: 'ложь'
}

Разобранный запрос: [Объект: нулевой прототип] {
  имя пользователя: 'user1',
  единицы: [килограммы, фунты],
  разрешение: 'ложь'
}

Пример 2:

Node.js




// Import the querystring module
const querystring = require( "querystring" );
// Specify the URL query string
// to be parsed
let urlQuery =
"user=admin&articles=1&articles=2&articles=3&access=true" ;
// Use the parse() method on the string
// with default values
let parsedObject = querystring.parse(urlQuery, "&" , "=" );
console.log( "Parsed Query:" , parsedObject);
// Use the parse() method on the string
// with maxKeys set to 1
parsedObject =
querystring.parse(urlQuery, "&" , "=" , { maxKeys: 1 });
console.log( " Parsed Query:" , parsedObject);
// Use the parse() method on the string
// with maxKeys set to 2
parsedObject =
querystring.parse(urlQuery, "&" , "=" , { maxKeys: 2 });
console.log( " Parsed Query:" , parsedObject);
// Use the parse() method on the string
// with maxKeys set to 0 (no limits)
parsedObject =
querystring.parse(urlQuery, "&" , "=" , { maxKeys: 0 });
console.log( " Parsed Query:" , parsedObject);

Выход:

 Разобранный запрос: [Объект: нулевой прототип] {
  пользователь: 'admin',
  статьи: ['1', '2', '3'],
  доступ: 'правда'
}

Разобранный запрос: [Объект: нулевой прототип] {пользователь: 'admin'}

Разобранный запрос: [Объект: нулевой прототип] 
              {пользователь: 'admin', статьи: '1'}

Разобранный запрос: [Объект: нулевой прототип] {
  пользователь: 'admin',
  статьи: ['1', '2', '3'],
  доступ: 'правда'
}

Ссылка: https://nodejs.org/api/querystring.html#querystring_querystring_parse_str_sep_eq_options