📜  Node.js querystring.parse() 方法(1)

📅  最后修改于: 2023-12-03 14:44:40.125000             🧑  作者: Mango

Node.js querystring.parse() 方法介绍

简介

querystring.parse() 方法是 Node.js 中的一个核心模块 querystring 提供的方法之一。该方法用于解析 URL 查询字符串,并将其转换为一个对象。

查询字符串是 URL 中 ? 后面的参数部分,它由多个键值对组成,每个键值对之间使用 & 分隔,键和值之间使用 = 分隔。querystring.parse() 方法将查询字符串解析为一个对象,其中键值对作为对象的键值对存在。

语法

以下是 querystring.parse() 方法的基本语法:

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

参数说明:

  • str:必需,要解析的查询字符串。
  • sep:可选,键值对之间的分隔符,默认为 &
  • eq:可选,键和值之间的分隔符,默认为 =
  • options:可选,一个对象,用于配置解析选项。

返回值:解析后的对象。

示例

假设有以下的查询字符串需要进行解析:

name=John&age=30&city=New%20York

我们可以使用 querystring.parse() 方法将其解析为一个对象:

const querystring = require('querystring');

const qs = 'name=John&age=30&city=New%20York';
const parsedObj = querystring.parse(qs);

console.log(parsedObj);

输出结果为:

{ name: 'John', age: '30', city: 'New York' }
options 配置项

querystring.parse() 方法中,我们可以通过 options 参数来配置解析选项。

常用的选项包括:

  • decodeURIComponent:一个函数,用于指定解码 URL 编码的字符串的方式。

以下是一个使用 decodeURIComponent 自定义解码方式的示例:

const querystring = require('querystring');

const qs = 'name=John&age=30&city=New%20York';
const parsedObj = querystring.parse(qs, null, null, {
  decodeURIComponent: (str) => {
    return decodeURIComponent(str).toUpperCase();
  }
});

console.log(parsedObj);

输出结果为:

{ name: 'JOHN', age: '30', city: 'NEW YORK' }
注意事项
  • 当查询字符串中存在重复键时,可通过 options 参数的 arrayFormat 选项来指定解析方式,默认为 "none"
  • querystring.parse() 方法只能解析查询字符串,无法解析完整的 URL。

更多关于 querystring.parse() 方法的详细信息,请参阅 Node.js 官方文档

希望以上内容能帮助到你!