切换导航
简历
工具
演示
查询
导航菜单
服务端
30
前端
114
数据库
82
进阶开发
8
桌面程序
2
QA
15
软件使用
36
规范协议
5
操作系统
11
AI
0
复用资源
6
硬件
0
标签
HTML
正则表达式
Json
包管理工具
vite
CSS
XPath
JavaScript
Jquery
less
ES6
Vue
React
vue 3
Layui
editor.md
sea.js
Zepto.js
mysql.js
mssql.js
NodeJs
Express
前端template
YAML
杂项
外部链接
.NET Core SDK和运行时安装包
淘宝 NPM 镜像
查询网
Tables Generator线上表格转换工具
引用cdn在线脚本和样式
首页
前端
Express第三方中间件body-parser参数解析
[TOC] ## body-parser使用介绍 ### 介绍 Node.js前端请求参数解析中间件 #### 相关参考资料 github:https://github.com/expressjs/body-parser 官方文档说明也在github上 #### 安装 ```Shell npm install body-parser --save ``` ### urlencoded 解析 urlencoded(option)函数,解析URL编码的数据传递的参数,`Express v4.16.0 之后已自带了urlencoded解析中间件` #### 可选参数option |属性|说明|类型|默认值| |--|--|--|--| |extended|true:允许在使用 [🔎qs](https://github.com/ljharb/qs) 库解析URL编码的数据<br/> false:允许在使用querystring库解析URL编码的数据|Boolean|true| |inflate|true:压缩数据被解压<br/>false:压缩数据会被拒绝|Boolean|true| |limit|设置请求的最大数据量|mixed|100kb| |parameterLimit|最大参数数量,如果请求包含的参数超过此值,则将向客户端返回413|Number|1000个| |type|用于设置为指定MIME类型的数据使用当前解析的中间件。该选项可以是一个函数或一个字符串,如果是字符串的话会使用type-is来查找MIME类型;如果是函数的话,中间件会通过fn(req)来获取实际值|string/function|application/x-wwww-form-urlencoded| |verify|用于对请求的校验,当校验失败的时候通过抛出error来中止body-parser的解析动作,verify函数有四个参数,其中buf是原始请求主体的Buffer,encoding是请求的编码<br/>示例:`verify: function (req, res, buf, encoding) {req.rawBody = buf;}`|function|undefined| ``` js const express = require("express") const app = express() const bodyParser = require("body-parser") app.use(express.static("static")) //挂载参数处理中间件(post提交) var urlencodedParser = bodyParser.urlencoded({ extended: false }) app.use(urlencodedParser) app.post("/login" ,(req, res) => { console.log(req.body.username) res.send("ok") }) app.listen(3000, "localhost", () => { console.log("runing……") }) ``` ### json 解析 json(option)函数,返回只解析json的中间件,只查看Content-Type类型匹配type选项。允许请求体任意Unicode编码,支持 gzip 和 deflate 编码,`Express v4.16.0 之后已自带了json解析中间件` #### 可选参数option |属性|说明|类型|默认值| |--|--|--|--| |inflate|true:压缩数据被解压<br/>false:压缩数据会被拒绝|Boolean|true| |limit|设置请求的最大数据量|mixed|100kb| |reviver|传递给JSON.parse()方法的第二个参数|Function|null| |strict|true:仅会解析Array和Object两种格式<br/>false:解析所有的JSON.parse支持的格式|Boolean|true| |type|选项用来决定中间件要解析媒体类型,选项可以是一个字符串、字符串数组或函数。当为字符串时,可以直接通过type-is 库直接传递给选项,字符串也可以为一个扩展名例如`json`、mime类型`application/json、/ 、*/json`,如果函数,type选项会以fn(req)执行并且如果返回真值请求会被转换|Mixed|application/json| |verify|用于对请求的校验,当校验失败的时候通过抛出error来中止body-parser的解析动作,verify函数有四个参数,其中buf是原始请求主体的Buffer,encoding是请求的编码<br/>示例:`verify: function (req, res, buf, encoding) {req.rawBody = buf;}`|function|undefined| ``` js const express = require("express") const app = express() const bodyParser = require("body-parser") app.use(express.static("static")) //挂载参数处理中间件 app.use(bodyParser.json()) app.post("/login" ,(req, res) => { console.log(req.body.username) res.send("ok") }) app.listen(3000, "localhost", () => { console.log("runing……") }) ``` ### raw 解析 raw(option)函数,将请求体内容作为Buffer来处理,并返回。支持gzip deflate 压缩,`Express v4.17.0 之后已自带了raw解析中间件` #### 可选参数option |属性|说明|类型|默认值| |--|--|--|--| |inflate|true:压缩数据被解压<br/>false:压缩数据会被拒绝|Boolean|true| |limit|设置请求的最大数据量|mixed|100kb| |type|选项用来决定中间件要解析媒体类型,选项可以是一个字符串、字符串数组或函数。当为字符串时,可以直接通过type-is库,它可以说扩展名`bin`,mime 类型如` application/octet-stream`或者带通配符的mine type如`*/* or application/*`,如果函数,type选项会以fn(req)执行并且如果返回真值请求会被转换|Mixed|application/octet-stream| |verify|用于对请求的校验,当校验失败的时候通过抛出error来中止body-parser的解析动作,verify函数有四个参数,其中buf是原始请求主体的Buffer,encoding是请求的编码<br/>示例:`verify: function (req, res, buf, encoding) {req.rawBody = buf;}`|function|undefined| ``` js const express = require("express") const app = express() const bodyParser = require("body-parser") app.use(express.static("static")) //挂载参数处理中间件 app.use(bodyParser.raw()) app.post("/login" ,(req, res) => { console.log(req.body.username) res.send("ok") }) app.listen(3000, "localhost", () => { console.log("runing……") }) ``` ### text 解析 text(option)函数,返回一个仅处理字符串格式处理的中间件。该req.body所有的参数将会是一个字符串值,`Express v4.17.0 之后已自带了raw解析中间件` #### 可选参数option |属性|说明|类型|默认值| |--|--|--|--| |defaultCharset|如果请求的content-Type标头中未指定字符集,请为文本内容指定默认字符集。|String|utf-8| |inflate|true:压缩数据被解压<br/>false:压缩数据会被拒绝|Boolean|true| |limit|设置请求的最大数据量|mixed|100kb| |type|该选项用于设置为指定MIME类型的数据使用当前解析的中间件。该选项可以是一个函数或一个字符串,如果是字符串的话会使用type-is来查找MIME类型;如果是函数的话,中间件会通过fn(req)来获取实际值|Mixed|text/plain| |verify|用于对请求的校验,当校验失败的时候通过抛出error来中止body-parser的解析动作,verify函数有四个参数,其中buf是原始请求主体的Buffer,encoding是请求的编码<br/>示例:`verify: function (req, res, buf, encoding) {req.rawBody = buf;}`|function|undefined| ``` js const express = require("express") const app = express() const bodyParser = require("body-parser") app.use(express.static("static")) //挂载参数处理中间件 app.use(bodyParser.text()) app.post("/login" ,(req, res) => { console.log(req.body.username) res.send("ok") }) app.listen(3000, "localhost", () => { console.log("runing……") }) ```
扫一扫手机看
点击排行
windows 文件资源管理器使用
Layui 弹窗open使用说明
SQL Server 中字符串函数使用
C# 使用QQ邮箱代理做邮件接收功能
SQL Server关于apply的两种形式cross apply 和 outer apply
ASP.NET MVC 模型的自定义验证
nvm安装及常用命令
SQL Server 中数据类型转换
SQL Server 中WITH AS短语的使用
IE浏览器下AJAX缓存问题导致数据不更新的解决办法
订阅号