Koa.js 中间件 koa-body

介绍

koa-body 是一个可以帮助解析 http 中 body 的部分的中间件,包括 json、表单、文本、文件等。

还有一个常用的类似扩展 koa-bodyparser


对比

其中,koa-bodyparser 不可以直接处理文件,需要上传文件的时候,还需要引用另外一个中间件 koa-multer,项目地址和使用数量如下:

koa-body Used by 31.6k

https://github.com/dlau/koa-body


koa-bodyparser Used by 73.1k 

https://github.com/koajs/bodyparser


代码示例

// 初始化
const koaBody = require('koa-body');
const app = new koa();
app.use(koaBody({
 multipart:true, // 支持文件上传
 encoding:'gzip',
 formidable:{
  uploadDir:path.join(__dirname,'/static/uploads/'), // 设置文件上传目录
  keepExtensions: true,  // 保持文件的后缀
  maxFieldsSize:2 * 1024 * 1024,           // 文件上传大小上限
  onFileBegin:(name,file) => {            // 文件上传前的设置
   // console.log(`name: ${name}`);
   // console.log(file);
  },
 }
}));


// 使用
conts formObj = ctx.request.body;
const fields = ctx.request.body.fields; // this will be undefined for file uploads    
const files = ctx.request.files; // 文件数组,多个文件

const file = ctx.request.files.file; // file属性是表单值
fs.writeFileSync('../uploads/images/test.jpg', fs.readFileSync(file.path));



koa-body 能处理以下请求类型:

multipart/form-data
application/x-www-urlencoded
application/json
application/json-patch+json
application/vnd.api+json
application/csp-report
text/xml



koa-body 参数:


formidable 参数


修改时间 2021-05-08

真诚赞赏,手留余香
赞赏
随机推荐
Photoshop 抠图技巧笔记
微信接入验证与回复消息
Wordpress 增加文章阅读次数或点赞次数(非插件实现)
Node.js 的图片处理模块 images 跨平台图像编解码库
Android工程中添加图片资源
关于磅
Koa 通过代理获取客户端 IP
使用阿里云储 ossutil 自动备份 CentOS 服务器
Apache自带的ab压力测试工具
filezilla server FTP 安装报错 "could not load TLS network. Aborting start of administration interface"