UNPKG

app-lib-mock-server-parse

Version:

body解析-【app-lib-mock-server-parse】

104 lines (82 loc) 4.05 kB
# app-lib-mock-server-parse Body解析中间件 <!-------------------------------common start flag-------------------------> <center> <div align="center"> <h1>body解析-【app-lib-mock-server-parse】</h1> <a href="https://img.shields.io/badge/success: https local reason - goback refresh you brower can show badge image now-brightgree" title="click can show badge"> <img src="https://appbir.github.io/appbir-resource-statics/image/logo.png" height="60" /> </a> <h1>app-lib-mock-server-parse</h1> <a href="https://appbir/library"> <img src="https://img.shields.io/badge/appbir-library-blue"/> </a> <a href="https://appbir/library/-/web/detail/app-lib-mock-server-parse"> <img src="https://img.shields.io/badge/npm-v1.0.4-green"> </a> <a href="https://appbir"> <img src="https://img.shields.io/badge/license-ISC-brightgree"/> </a> <div> </center> <!-------------------------------common end flag---------------------------> <!-------------------------------background start flag---------------------> # 一、背景介绍 插件指定交互过程中的解析方式和顺序 在日常中有一些不规则的定义 比如json定义content-type 后用text解析 统一个服务下多中解析方式自动支持 <!-------------------------------background end flag-----------------------> <!-------------------------------functions start flag----------------------> # 二、功能描述 <!-------------------------------functions end flag------------------------> <!-------------------------------attention start flag----------------------> # 三、注意事项 <!-------------------------------attention end flag------------------------> 1. 扩展的解析 * 由于类似json 其实是text的请求需要兼容处理 * 针对在body-parser读取stream只能一次,中添加解析文本结果用于下一次使用,会出现两个问题: > 1. 下一次的解析还会是上一次的解析内容 及中间件的json和text等 会按照第一个解析方式进行文本的解析 > 2. 后续有必要的情况下 进行body-parser下的read.js 进行扩展,将流进行复制 用于下一次正常解析。【important】 2. 一样使用该中间件基于app-mock-server工程 依赖的类库都存在express中,故没有独立的依赖到组件里。 <!-------------------------------examples start flag-----------------------> # 四、使用案列 * 中间件参宿配置 ``` https://github.com/expressjs/body-parser 采用body-parser解析 "params": { "paraseType": [ // 支持解析方式 "json", "raw", "text", "urlencoded" ], "match": { // 指定url的解析方式 目前未开发 "url": "json" }, "json": {}, // 每种解析的配置 "text": { "type": "*/*", // 匹配content-type "defaultCharset":"utf-8", // 编码方式 "inflate":true, "limit":"100kb", "verify": "forceParse":true, // 强制解析 不管是否为text/* content-type }, "raw": {}, "urlencoded": {} } ``` <!-------------------------------examples end flag-------------------------> <!-------------------------------todo start flag---------------------------> # 五、todo列表 <!-------------------------------todo end flag-----------------------------> <!-------------------------------api start flag----------------------------> # 六、API <!-------------------------------api end flag------------------------------> <!-------------------------------change logs begin flag---------------------> # 七、发布日志 * [2024-12-10 02-55-44]-发布徐子版本 * [2024-12-10 02-48-30]-发布最新版本 * [2023-09-07 12-04-47]-参数解析中间件排除包 * [2023-09-07 11-59-28]-参宿解析中间件 <!-------------------------------change logs end flag----------------------->