监听req的data事件
在中间件中,需要监听req对象的data事件,来获取客户端发送到服务器的数据。如果数据量比较大,无法一次性发送完毕,则客户端会把数据切割后,分批发送到服务器。 所以data事件可能会触发多次,每一次触发data事件时,获取到数据只是完整数据的一部分,需要手动对接收到的数据进行拼接。
//导入express 模块 const express= require('express') //创建express 的服务器实例 const app = express() //这是解析表单数据的中间件 app.use((req,res,next)=>{ //定义中间件具体的业务逻辑 //1.定义一个 str字符串,专门用来存储客户端发送过来的请求体数据 let str='' req.on('data',(chunk)=>{ str +=chunk }) }) //调用 app.listen方法,指定端口号并启动web服务器 app.listen(80,()=>{ console.log('express server running at http://127.0.0.1') })
监听req的end事件
当请求体数据接收完毕之后,会自动触发req的end事件。
因此,我们可以在req的end事件中,拿到并处理完整的请求体数据。
//导入express 模块 const express= require('express') //创建express 的服务器实例 const app = express() //这是解析表单数据的中间件 app.use((req,res,next)=>{ //定义中间件具体的业务逻辑 //1.定义一个 str字符串,专门用来存储客户端发送过来的请求体数据 let str='' req.on('data',(chunk)=>{ str +=chunk }) req.on('end',()=>{ //在str中存放的是完整的请求体数据 console.log(str) ///TODO:把字符串格式的请求体数据,解析成对象格式 }) }) //调用 app.listen方法,指定端口号并启动web服务器 app.listen(80,()=>{ console.log('express server running at http://127.0.0.1') })
标签:express,app,req,中间件,str,Express,data,监听 From: https://www.cnblogs.com/ximu1009/p/17993917