express中如何自定义中间件解析表单数据
dearweb 发布:2021-11-14 18:52:39阅读:在express中如何自定义中间件解析表单提交的数据,本文将为大家介绍一下
创建一个服务
创建一个post服务用来接收客户端的post请求
// 自定义中间件 const express = require('express') const app = express() app.post('/',(req,res)=>{ // req.body 接受客户端的请求体数据 // 如果不配置解析表单数据的中间件,req.body 默认等于 undefind console.log(req.body) res.send('home') }) app.listen(80,()=>{ })
自定义一个中间件
创建中间件,并在其中监听用户端提交的数据,监听 data 事件,获取用户的请求体数据,监听 end 事件,获取完整的请求体数据
// 自定义中间件 解析表单数据 app.use((req,res,next)=>{ // 定义变量 用来存储客户端发送过来的请求体数据 let str ="" // 监听 req 对象的 data 事件,客户端发送过来的新的请求体数据 req.on('data',(chunk)=>{ // 拼接请求体数据 str += chunk }) // 监听end 事件获取完整的 请求体数据 req.on('end',()=>{ // 完整的请求体数据 console.log(str) }) next() })
引用node内置的方法 querystring
通过querystring 模块中的parse() 方法将查询的结果转换为对象
// 导入处理json querystring 的node内置模块 const qs = require('querystring') // 调用 querystring 中的 parse() 方法,把查询字符串解析为对象 const body = qs.parse(str)
整体的代码展示
// 自定义中间件 const express = require('express') const app = express() // 导入处理json querystring 的node内置模块 const qs = require('querystring') // 自定义中间件 解析表单数据 app.use((req,res,next)=>{ // 定义变量 用来存储客户端发送过来的请求体数据 let str ="" // 监听 req 对象的 data 事件,客户端发送过来的新的请求体数据 req.on('data',(chunk)=>{ // 拼接请求体数据 str += chunk }) // 监听end 事件获取完整的 请求体数据 req.on('end',()=>{ console.log(str) // 调用 querystring 中的 parse() 方法,把查询字符串解析为对象 const body = qs.parse(str) }) next() }) app.post('/',(req,res)=>{ // req.body 接受客户端的请求体数据 // 如果不配置解析表单数据的中间件,req.body 默认等于 undefind console.log(req.body) res.send('home') }) app.listen(80,()=>{ })
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧