位置:首页 > 后端 > node

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,()=>{

})


24人点赞 返回栏目 提问 分享一波

小礼物走一波,支持作者

还没有人赞赏,支持一波吧

留言(问题紧急可添加微信 xxl18963067593) 评论仅代表网友个人 留言列表

暂无留言,快来抢沙发吧!

本刊热文
网友在读
手机扫码查看 手机扫码查看