在 Web 开发中,我们经常需要对 URL 参数进行解析或者序列化。这时候,就可以使用 Node.js 内置的 querystring
模块来完成这个任务。
安装与引入
首先,我们需要通过 npm 安装 querystring
模块:
npm install querystring
然后,在项目中引入模块:
const querystring = require('querystring');
序列化对象为 URL 查询字符串
可以使用 querystring.stringify()
方法将一个对象转换为 URL 查询字符串。例如:
const params = { name: 'Jim', age: 20, }; const queryString = querystring.stringify(params); console.log(queryString); // 输出:name=Jim&age=20
默认情况下,参数之间会用 &
符号隔开,可以通过第二个可选参数指定分隔符:
const params = { name: 'Jim', age: 20, }; const queryString = querystring.stringify(params, ';'); console.log(queryString); // 输出:name=Jim;age=20
解析 URL 查询字符串为对象
可以使用 querystring.parse()
方法将 URL 查询字符串解析为对象。例如:
const queryString = 'name=Jim&age=20'; const params = querystring.parse(queryString); console.log(params); // 输出:{ name: 'Jim', age: '20' }
注意,无论是 stringify()
还是 parse()
,都会自动进行 URL 编码和解码。
URL 编码和解码
除了上述方法外,querystring
模块还提供了 querystring.escape()
和 querystring.unescape()
方法用于 URL 编码和解码。例如:
const str = 'Hello, 世界!'; const encodedStr = querystring.escape(str); console.log(encodedStr); // 输出:Hello%2C%20%E4%B8%96%E7%95%8C%21 const decodedStr = querystring.unescape(encodedStr); console.log(decodedStr); // 输出:Hello, 世界!
需要注意的是,这些方法并不会对所有字符进行编码或解码。具体来说,只有当字符不属于 URL 可能的字符集时才会进行编码。
结语
通过本文,我们学习了 querystring
模块的基本使用方法,包括序列化对象为 URL 查询字符串、解析 URL 查询字符串为对象以及 URL 编码和解码。希望这篇文章对你有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/44017