一、querystring模块
Node.js 的 querystring 模块用于解析和格式化 URL 查询字符串
(1)querystring.parse (url)
将字符串参数解析成对象
(2)querystring.stringify (urlObject)
将对象参数解析成字符串
(3)总结:以querystring.stringify为例
用途:
querystring.stringify 用于生成 URL 查询字符串,通常用于构造 URL 参数
数据类型:
querystring.stringify 可以将任何 JavaScript 值转换为查询字符串,包括函数、undefined、Symbol 等
输出格式:
querystring.stringify 输出的字符串遵循 URL 查询字符串格式,并且会进行 URL 编码
(4)querystring模块的使用
安装模块:
npm install querystring
// 导入查询参数的模块
const querystring = require('querystring');
(5)代码示例:
见我后续写的代码
二、formidable模块
(1)介绍
formidable模块在Node.js中主要用于解析POST请求中的表单数据。这主要是因为POST请求通常用于提交数据到服务器,如用户填写的表单数据。而formidable模块的设计目标就是简化这种类型的数据的解析过程。
1、安装
npm install formidable -save
2、导入
const formidable = require(‘formidable’)
3、创建对象
var form = new formidable.IncomingForm([options])
(2)form对象
1》 form对象常用属性:
form.encoding = 'utf-8' //设置表单域的编码
form.uploadDir = "/my/dir"; //设置上传文件存放的文件夹,默认为系统的临时文件夹,可以使用fs.rename()来改变上传文件的存放位置和文件名
form.keepExtensions = false; //设置该属性为true可以使得上传的文件保持原来的文件的扩展名。
form.type //只读,根据请求的类型,取值'multipart' or urlencoded'
form.maxFields = 1000 //设置可以转换多少查询字符串,默认为1000
form.hash = false; //设置上传文件的检验码,可以有两个取值'sha1' or 'md5'.
form.multiples = false; //开启该功能,当调用form.parse()方法时,回调函数的files参数将会是一个file数组,数组每一个成员是一个File对象,此功能需要 html5中multiple特性支持。
form.bytesReceived //返回服务器已经接收到当前表单数据多少字节
form.bytesExpected //返回将要接收到当前表单所有数据的大小
2》 form对象常用方法:
form.parse(request, [callback])
该方法会转换请求中所包含的表单数据,callback会包含所有字段域和文件信息,如:
form.parse(req, function(err, fields, files) {
... //request请求、对表单请求解析后的域的内容、文件
});
files:对象,其属性file(对应表单中的属性名称)存放上传的文件数组
files.file[n] file数组的元素是上传文件对象
file.filepath=’’ 上传后文件的绝对路径
file.newFilename= null 上传后文件名。
file.originalFilename= null 客户文件名称
file.mimetype= null 上传文件的mime类型
file.size=null 文件的大小(字节数)
3》 form对象常见事件:
field事件在接收到一个字段键值对的时候触发 eg:{name:xxx}
file事件在接收到一个文件字段值时触发。file是File的实例
err在接收form表单提交的数据发生错误时触发。
(3)formidable模块的使用
先在终端 npm install formidable -save安装formidable
const formidable = require('formidable');
var form = new formidable.IncomingForm({
uploadDir: path.join(__dirname, '存放的文件夹路径'),
keepExtensions: true,
multiples: true
});
form.parse(req, (err, fields, files) => {
if (err) {
console.log(err.message);
} else {
...
}
})
(4)代码示例:
见我后续写的代码