nodejs qs querystring 解析包简单说明
nodejs qs 包还是很方便的,提供了方便的querystring 转换以及解析能力,可以实现一些比较有意思的querystring 格式处理
这样我们的querystring 就不是简单的一长串字符串了
一个有意思的格式
在进行get 传递参数的时候,查询字符串还是比较重要的,比如阿里云使用到了如下格式,对于PipCode 使用了类似索引模式,按照传统解析处理是比较费事的
BillingCycle=2025-04&StatisticItem=DEFAULT_CHARGE_ITEM&PipCode[filterMode]=IN&PipCode[values]=cdt&StatisticCycle=MONTHLY
qs 参考使用
- 解析处理
const qs = require("qs")
const user = {
person: {
name:"dalong",
age:333
}
}
const encodedValues = qs.stringify(user,{encodeValuesOnly:true, indices:true});
console.log(encodedValues)
const parseQuery = qs.parse(encodedValues);
console.log(parseQuery.person?.version)
- express 集成
const express = require("express")
const qs = require('qs');
const app = express()
app.set('query parser', str => qs.parse(str));
app.get('/demo',async (req, res) => {
let info = req.query
res.json(info)
})
app.listen(3000, (err) => {
if(err) {
console.log("Error in starting server", err)
return
}
console.log("Server is running on port 3000")
})
说明
以上只是一个简单记录,实际上用好查询字符串可以方便不少http 处理