Node.js学习之查询字符串解析querystring详解
在网页开发中,我们经常需要解析 URL 中的查询字符串,Node.js 提供了 querystring
模块用于处理查询字符串的解析与生成。
1.模块引入
在使用 querystring
模块前,需要先引入该模块。
const querystring = require('querystring');
2.查询字符串转对象
可以使用 querystring.parse()
方法将查询字符串转为对象。例如:
const str = 'name=foo&age=20&gender=male';
const obj = querystring.parse(str);
console.log(obj);
输出结果:
{
name: 'foo',
age: '20',
gender: 'male'
}
3.对象转查询字符串
可以使用 querystring.stringify()
方法将对象转为查询字符串。例如:
const obj = {
name: 'foo',
age: 20,
gender: 'male'
};
const str = querystring.stringify(obj);
console.log(str);
输出结果:
name=foo&age=20&gender=male
注意:若对象中的属性值为布尔型或数字类型,则会自动转为字符串形式。
4.指定分隔符和赋值符
在默认情况下,查询字符串使用 &
分隔键值对,使用 =
赋值。可以通过传递第二个和第三个参数来更改分隔符和赋值符。例如:
const str = 'name|foo;age|20;gender|male';
const obj = querystring.parse(str, ';', '|');
console.log(obj);
输出结果:
{
name: 'foo',
age: '20',
gender: 'male'
}
const obj = {
name: 'foo',
age: 20,
gender: 'male'
};
const str = querystring.stringify(obj, ';', '|');
console.log(str);
输出结果:
name|foo;age|20;gender|male
5.完整示例
以下是一个完整的示例,展示了如何从 URL 中提取查询参数并将其转为对象。
const url = 'https://www.example.com/path?name=foo&age=20&gender=male';
const query = url.split('?')[1];
const params = querystring.parse(query);
console.log(params);
输出结果:
{
name: 'foo',
age: '20',
gender: 'male'
}
请注意:在真实项目中,需要对 URL 是否存在查询字符串进行判断。
6.结语
以上就是使用 querystring
模块解析和生成查询字符串的一些方法和注意事项。希望对大家有所帮助!
两条示例说明:
- 查询字符串转对象的示例:
const str = 'lang=javascript&version=es10';
const obj = querystring.parse(str);
console.log(obj);
输出结果:
{
lang: 'javascript',
version: 'es10'
}
- 对象转查询字符串的示例:
const obj = {
lang: 'javascript',
version: 'es10'
};
const str = querystring.stringify(obj);
console.log(str);
输出结果:
lang=javascript&version=es10
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Node.js学习之查询字符串解析querystring详解 - Python技术站