系列文章请访问我的GitHub博客,示例代码请访问这里。

multiparty

上一节虽然完成了完整的文件上传流程,但实际工作中不可能自己从头开发所有功能,这样效率很低。

我们可以尝试使用第三方库来完成POST请求的处理,如multiparty。

multiparty demo

通过如下例子,可以测试一下multiparty的功能。

它会在field事件中,将数据信息的字段名和值返回。在file事件中,将文件的字段名和信息返回。

上传成功后,会在指定的文件夹创建一个上传的文件,并会将文件重命名(如:IqUHkFe0u2h2TsiBztjKxoBR.jpg),以防止重名。

若上传出现失败,已保存的文件会自动删除。

close事件表示表单数据全部解析完成,用户可以在其中处理已经接收到的信息。

示例代码:/lesson17/server.js

const http = require('http')
const multiparty = require('multiparty')const server = http.createServer((req, res) => {const form = new multiparty.Form({uploadDir: './upload' // 指定文件存储目录})form.parse(req) // 将请求参数传入,multiparty会进行相应处理form.on('field', (name, value) => { // 接收到数据参数时,触发field事件console.log(name, value)})form.on('file', (name, file, ...rest) => { // 接收到文件参数时,触发file事件console.log(name, file)})form.on('close', () => {  // 表单数据解析完成,触发close事件console.log('表单数据解析完成')})
})server.listen(8080)
复制代码

Nodejs教程17:multiparty相关推荐

  1. Node初学者入门,一本全面的NodeJS教程,微小的web框架,能实现文件上传功能以及数据解析功能...

    Node初学者入门,一本全面的NodeJS教程 转载于:https://www.cnblogs.com/hfultrastrong/p/8036672.html

  2. STM32 电机教程 17 - 基于ST MotorControl Workbench的电机调试

    前言 磁场定向控制又称矢量控制(FOC), 本质上为控制定子电流的幅度和相位,使之产生的磁场和转子的磁场正交,以产生最大的扭矩. PMSM的磁场定向控制框图如下图所示: 上一讲详细介绍了磁场定向控制的 ...

  3. STM32 进阶教程 17 - ADC注入通道

    前言 STM32 的ADC的一个强大功能是支持触发注入功能,在103中每个ADC模块支持4个注入通道,每个注入通道具有独立的结果突存器,注入通道具有较规划通道更高的优先级,在实际工程应用中,注入通道更 ...

  4. STM32 基础系列教程 17 – CRC

    前言 学习stm32 循环冗余校验(CRC)计算单元接口使用,学会stm32f103 CRC应用与编程,关于CRC的基础知识请各位自行百度,STM32有些芯片的CRC多项式可自由设定,有些则是固定值0 ...

  5. PE文件详解(教程1-7)

    PE文件详解(教程1-7) ========================================= PE教程1: PE文件格式一览 PE 的意思就是 Portable Executable ...

  6. 视达配色教程17 灰色的色彩意象是什么

    视达配色教程17 灰色的色彩意象是什么 一.总结 一句话总结:没有个性的色彩 1.灰色的一般意象是什么? 所有混沌的情感 不友好的色彩 可怕.恐怖和残忍 感情贫乏或者内向 年龄和年老 遗忘的过去 贫困 ...

  7. Magento教程 17:Magento功能导览(1) 会员功能

    Magento系统内建的会员系统功能齐全,可以满足大部分电子商务网站需求,下面将介绍Magento的会员系统. 登入页面 Magento教程 17:Magento功能导览(1) 会员功能 在使用任何有 ...

  8. Nodejs教程笔记(五)fs续 读取 写入 管道流

    感谢b站教程:Nodejs教程_Nodejs+Koa2入门实战视频教程-2020年更新 读取流 const fs = require('fs')// 读取流 var readStream = fs.c ...

  9. 视频教程-20年Nodejs教程零基础入门到项目实战前端视频教程-Node.js

    20年Nodejs教程零基础入门到项目实战前端视频教程 7年的开发架构经验,曾就职于国内一线互联网公司,开发工程师,现在是某创业公司技术负责人, 擅长语言有node/java/python,专注于服务 ...

最新文章

  1. 参加web前端培训需要注意什么
  2. Python 人脸识别 OpenCV (haarcascades)
  3. 翻译 | ORB: An efficient alternative to SIFT or SURF(ORB:对SIFT或SURF的一种有效选择)
  4. netstat命令总结
  5. 信息学奥赛一本通 1101:不定方程求解 | OpenJudge NOI 2.1 7650 | 小学奥数 7650
  6. 如何修改SQL Server 2000身份验证模式和系统管理员
  7. mysql表数据量太大,达到了1亿多条数据,除了分库分表之外,还有没有其他的解决方式?
  8. IEEE 迎来首位华人主席,马里兰大学终身教授刘国瑞当选
  9. Adobe MasterCollection CS5 试用版下载链接
  10. 2017web前端面试总结
  11. 给定一个数跟数组,将小于等于该数的数组元素放在左边,将大于该数的数组元素放在右边...
  12. 微信公众开发java教程_[Java教程]微信公众平台开发(一)
  13. 2008下搭建easypanel(康乐)虚拟主机控制面板
  14. Ubuntu上开发python的十大IDE
  15. opencv存入数据库图片入门笔记
  16. 如何理解假设检验中的假设设计?
  17. GreenDao 数据库 升级 保留之前数据
  18. springMVC+poi导出excel
  19. 在计算机系统内部使用的汉子编码是,数据库系统工程师考试汉字编码输入码
  20. 不会还有人拿着手机拍屏幕翻译英语吧,pycharm翻译插件推荐

热门文章

  1. 「图灵奇点」将应收账款证券化,区块链协作缩短尽调时间
  2. PTA基础编程题目集 之 Python解法(7-8)
  3. 漫话:如何给女朋友解释什么是P2P?
  4. 计算机毕业设计Java仓库管理系统(源码+系统+mysql数据库+lw文档
  5. Android快速入门
  6. uniapp封装请求(包含白名单、验签)
  7. idea解决控制台乱码
  8. 知识改变命运,技术决定薪资
  9. 相机稳定性测试软件,四种方法,确保运动中的相机提供最佳视频稳定性
  10. HanLP使用教程——NLP初体验