• querystring模块、formidable模块的介绍


    一、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

    1. // 导入查询参数的模块
    2. const querystring = require('querystring');

    (5)代码示例:

    见我后续写的代码

    二、formidable模块

    (1)介绍

    formidable模块在Node.js中主要用于解析POST请求中的表单数据。这主要是因为POST请求通常用于提交数据到服务器,如用户填写的表单数据。而formidable模块的设计目标就是简化这种类型的数据的解析过程。

    1. 1、安装
    2. npm install formidable -save
    3. 2、导入
    4. const formidable = require(‘formidable’)
    5. 3、创建对象
    6. var form = new formidable.IncomingForm([options])

    (2)form对象

    1》 form对象常用属性:
    1. form.encoding = 'utf-8' //设置表单域的编码
    2. form.uploadDir = "/my/dir"; //设置上传文件存放的文件夹,默认为系统的临时文件夹,可以使用fs.rename()来改变上传文件的存放位置和文件名
    3. form.keepExtensions = false; //设置该属性为true可以使得上传的文件保持原来的文件的扩展名。
    4. form.type //只读,根据请求的类型,取值'multipart' or urlencoded'
    5. form.maxFields = 1000 //设置可以转换多少查询字符串,默认为1000
    6. form.hash = false; //设置上传文件的检验码,可以有两个取值'sha1' or 'md5'.
    7. form.multiples = false; //开启该功能,当调用form.parse()方法时,回调函数的files参数将会是一个file数组,数组每一个成员是一个File对象,此功能需要 html5中multiple特性支持。
    8. form.bytesReceived //返回服务器已经接收到当前表单数据多少字节
    9. form.bytesExpected //返回将要接收到当前表单所有数据的大小
    2》 form对象常用方法:

    form.parse(request, [callback]) 
    该方法会转换请求中所包含的表单数据,callback会包含所有字段域和文件信息,如:

    1. form.parse(req, function(err, fields, files) {
    2. ... //request请求、对表单请求解析后的域的内容、文件
    3.    });

    files:对象,其属性file(对应表单中的属性名称)存放上传的文件数组        

    files.file[n]  file数组的元素是上传文件对象

    file.filepath=’’ 上传后文件的绝对路径

    file.newFilename= null 上传后文件名。

    file.originalFilename= null 客户文件名称

    file.mimetype= null 上传文件的mime类型

    file.size=null 文件的大小(字节数)

    3》 form对象常见事件:
    1. field事件在接收到一个字段键值对的时候触发 eg:{name:xxx}
    2. file事件在接收到一个文件字段值时触发。file是File的实例
    3. err在接收form表单提交的数据发生错误时触发。

    (3)formidable模块的使用

    先在终端 npm install formidable -save安装formidable

    1. const formidable = require('formidable');
    2. var form = new formidable.IncomingForm({
    3. uploadDir: path.join(__dirname, '存放的文件夹路径'),
    4. keepExtensions: true,
    5. multiples: true
    6. });
    7. form.parse(req, (err, fields, files) => {
    8. if (err) {
    9. console.log(err.message);
    10. } else {
    11. ...
    12. }
    13. })

    (4)代码示例:

    见我后续写的代码

  • 相关阅读:
    Metabase可视化BI系统部署安装及简单使用
    Python中的@dataclass装饰器
    Golang 时间和日期函数汇总
    更安全高效的文件传输工具,Ftrans国产FTP替代方案可以了解
    民安智库(第三方满意度调研公司)写字楼客户满意度调查
    基于ASAM ODS标准的试验数字化平台-WDP
    Redis缓存使用技巧和设计方案
    文本挖掘入门
    腾讯云标准型S5服务器五年优惠价格表(4核8G和2核4G)
    程序员的数学课10 信息熵:事件的不确定性如何计算?
  • 原文地址:https://blog.csdn.net/2301_76669854/article/details/138166602