app-lib-mock-server-parse
Version:
body解析-【app-lib-mock-server-parse】
104 lines (82 loc) • 4.05 kB
Markdown
# 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----------------------->