Skip to content

1.parse

Node.js 中,querystring 是一个用于解析和字符串化 URL 查询字符串的内置模块。

js
const querystring = require('node:querystring')

const str1 = 'name=JohnDoe&age=30'

const str2 = '?name=JohnDoe&age=30'

const str3 = 'foo=1&foo=2&foo=3'

const str4 = 'a[b]=1&a[c]=2'

const result1 = querystring.parse(str1) // { name: 'JohnDoe', age: '30' }

console.log(result1)

const result2 = querystring.parse(str2) // { '?name': 'JohnDoe', age: '30' }

console.log(result2)

const result3 = querystring.parse(str3) // { foo: [ '1', '2', '3' ] }

console.log(result3)

const result4 = querystring.parse(str4) // { 'a[b]': '1', 'a[c]': '2' }

console.log(result4)

2.stringify

js
const querystring = require('node:querystring')

const stringified = querystring.stringify({ name: 'JohnDoe', age: 30 })

console.log(stringified) // 'name=JohnDoe&age=30'

3.encode&decode

js
/*
1. The querystring.encode() function is an alias for querystring.stringify().

2. The querystring.decode() function is an alias for querystring.parse().
*/
const querystring = require('node:querystring')

const obj = {
  name: 'zhang san',
  age: 18
}

const result1 = querystring.encode(obj)

console.log(result1)

const result2 = querystring.decode(result1)

console.log(result2)

4.escape&unescape

js
/*
querystring.escape()方法以针对 URL 查询字符串的特定要求进行优化的方式对给定的str执行 URL 百分比编码。

querystring.escape()方法由querystring.stringify()使用,一般不希望直接使用。

导出它主要是为了允许应用程序代码在必要时通过将querystring.escape分配给替代函数来提供替换的百分比编码实现。
*/

const querystring = require('node:querystring')

const escaped = querystring.escape('name=John Doe')
console.log(escaped)
// 输出: 'name%3DJohn%20Doe'

const unescaped = querystring.unescape(escaped)
console.log(unescaped)
// 输出: 'name=John Doe'