技术标签: # koa 中间件笔记
本系列是我的常用 koa 中间件使用笔记,防止忘记使用方法而作记录
koa-body 是一个可以帮助解析 http 中 body 的部分的中间件,包括 json、表单、文本、文件等。
const Koa = require('koa'); // 引入koa
const app = new Koa(); // 创建koa应用
const koaBody = require('koa-body'); //引入koa-body
app.use(
koaBody({
multipart: true, //解析多个文件
formidable: {
maxFileSize: 100 * 1024 * 1024, // 设置上传文件大小最大限制,默认2M
//uploadDir: 可以填写一个路径,不填写默认为 os.tmpDir()
}
})
)
app.use(async (ctx, next) => {
let file1 = ctx.request.files.file1; //其中files后是 form-data的key值
//file1中有这个文件的信息
})
app.listen(3000);
要获得文件内容使用 ctx.request.files,获得表单内容使用 ctx.request.body。
koa-body 的基本参数
参数名 | 描述 | 类型 | 默认值 |
---|---|---|---|
patchNode | 将请求体打到原生 node.js 的ctx.req 中 |
Boolean | false |
patchKoa | 将请求体打到 koa 的 ctx.request 中 |
Boolean | true |
jsonLimit | JSON 数据体的大小限制 | String / Integer | 1mb |
formLimit | 限制表单请求体的大小 | String / Integer | 56kb |
textLimit | 限制 text body 的大小 | String / Integer | 56kb |
encoding | 表单的默认编码 | String | utf-8 |
multipart | 是否支持 multipart-formdate 的表单 |
Boolean | false |
urlencoded | 是否支持 urlencoded 的表单 |
Boolean | true |
text | 是否解析 text/plain 的表单 |
Boolean | true |
json | 是否解析 json 请求体 |
Boolean | true |
jsonStrict | 是否使用 json 严格模式,true 会只处理数组和对象 |
Boolean | true |
formidable | 配置更多的关于 multipart 的选项 |
Object | {} |
onError | 错误处理 | Function | function(){} |
stict | 严格模式,启用后不会解析 GET, HEAD, DELETE 请求 |
Boolean | true |
formidable 的相关配置参数
参数名 | 描述 | 类型 | 默认值 |
---|---|---|---|
maxFields | 限制字段的数量 | Integer | 1000 |
maxFieldsSize | 限制字段的最大大小 | Integer | 2 * 1024 * 1024 |
uploadDir | 文件上传的文件夹 | String | os.tmpDir() |
keepExtensions | 保留原来的文件后缀 | Boolean | false |
hash | 如果要计算文件的 hash,则可以选择 md5/sha1 |
String | false |
multipart | 是否支持多文件上传 | Boolean | true |
onFileBegin | 文件上传前的一些设置操作 | Function | function(name,file){} |
文章浏览阅读5.2k次。帮同事安装SQL SERVER 2005时出现2个警告信息,导致无法安装reporting service.警告如下:- ASP.Net Version Registration Requirement (Warning)Messages· ASP.Net Version Registration RequirementFailed to find the ASP.Net Ve_failed to find the asp.net version registration with microsoft internet
文章浏览阅读205次。目录一、环境安装1.1首先下载clion2.5 安装配置 OpenOCD3.1生成stm32cubemx程序3.4 添加并编译代码五、总结一、环境安装1.1首先下载clionclion官网:CLion: A Cross-Platform IDE for C and C++ by JetBrains安装完成2.3 安装配置 arm-none-eabi-gcc windows 上到这下载: GNU To...
文章浏览阅读9.1k次,点赞5次,收藏53次。设定 AE 曝光属性HI_MPI_ISP_SetExposureAttrbByPass AE 模块 bypass 功能使能,默认为 HI_FALSE。enOpType 自动曝光或手动曝光开关,默认为 OP_TYPE_AUTO。u8AERunIntervalenExpTimeOpType 手动曝光时间使能,默认值为 OP_TYPE_AUTOenAGainOpType ..._pqtools
文章浏览阅读1.4k次。由于《深入理解Android 卷一》和《深入理解Android卷二》不再出版,而知识的传播不应该因为纸质媒介的问题而中断,所以我将在程序员宅基地中全文转发这两本书的全部内容 第4章 深入理解PackageManagerService本章主要内容:详细分析PackageManagerService本章所涉及的源代码文件名及位置:· SystemServer.javaf_packagemanagerservice keycode_key_f24
文章浏览阅读265次。内层优化目标是针对分布式能源电网储能容量,以购电成本最低为目标,通过改进粒子群算法和Cplex求解器,得到最优的储能容量。本文主要介绍一种针对分布式能源电网储能容量优化的双层优化模型,该模型基于改进粒子群算法和Cplex求解器,通过内层以购电成本最低为目标,外层以综合运行成本(储能投运,新能源发电,网损等等)为目标,最终得到一个全局最优的解。在实验验证方面,我们使用了分布式能源电网储能容量的实际数据,以购电成本最低和综合运行成本最低为两个目标,对改进的粒子群算法和Cplex求解器进行了验证。_cplex粒子群
文章浏览阅读271次。opencv学习_实战训练:银行卡号识别
文章浏览阅读2.4k次。IPTV m3u 直播源 收集 & 汇总简介主要功能收集网络上现有的一些网友共享的直播源, 将其汇总后.对每个连接进行测试, 同时记录当前网络对该连接的延迟, 同时对其标题进行一定的格式化.最终, 针对当前网络生成一份可用的, 同类速度最优的 “播放列表”.将其输出为 m3u 文件程序内置服务器功能, 本地运行访问: http://{你的IP}:9527/m3u目前进度目前库存频道总数: ..._iptv github
文章浏览阅读2.2k次。本文介绍python清空windows系统剪切板数据方法一、实现原理通过python ctypes模块,调用windows API实现二、实现代码from ctypes import windllif windll.user32.OpenClipboard(None): # 打开剪切板 windll.user32.EmptyClipboard() # 清空剪切板 windll.user32.CloseClipboard() # 关闭剪切板..._python清空剪贴板
文章浏览阅读217次,点赞2次,收藏4次。引言:随着互联网的快速发展,爬虫成为一种非常重要的技术手段。Python作为一门功能强大且易于学习的编程语言,拥有丰富的爬虫库和工具。本文将为大家详细介绍Python爬虫的基本原理和实战案例,帮助你快速入门并掌握爬虫技术。第一部分:爬虫基础知识什么是爬虫?爬虫是一种自动化获取网页信息的程序,通过模拟浏览器行为,访问网页并提取所需的数据。爬虫的基本原理发送HTTP请求:使用Python的请求库发送HTTP请求,获取网页内容。解析HTML:使用解析库对网页内容进行解析,提取所需的数据。存储数据:将提取到的数据存
文章浏览阅读346次,点赞5次,收藏10次。还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!【完整版领取方式在文末!!
文章浏览阅读1.9k次。Python实现网页爬虫基本实现代码解读(2012-11-08 14:11:56)标签:pythonpython培训北京itPython是一款功能强大的计算机程序语言,同时也可以被看做是一款面向对象的通用型语言。它的功能特点比较突出,极大的方便开发人员应用。在这里我们先来一起了解一下有关Python市县网页爬虫的方法。今天看到一个网页,又因为在家里用电话线上网,一直在线阅读很麻烦。所以就写了个简单..._python爬虫网页代码
文章浏览阅读1.4k次。另外,第4个用例中由于A=2,第二个判定中的X>1条件被忽略,虽然覆盖了路径abd,却无法发现X>1误写为X>2时的错误,即没有对覆盖ace路径时X>1的情况进行测试。判定/条件覆盖,既要考虑到单个判定中每个条件的可能情况(A>1或A≤1,B=0或B≠0,A=2或A≠2,X>1或X≤1),也要考虑到每个判定的可能情况(路径ace和abd,或路径acd和abe)。由此,要达到完全路径覆盖就需要设计9个测试用例,去掉不可能的情况路径三(因为A不可能同时满足A≤1,A=2两个条件),仍然有8个用例。_白盒测试用例