首页 > 其他分享 >[Express]中间件监听不同事件

[Express]中间件监听不同事件

时间:2024-02-01 14:23:42浏览次数:23  
标签:express app req 中间件 str Express data 监听

监听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

相关文章

  • jmeter Regular Expression Extractor和JSON Extractor使用
    在Jmete中我们经常遇到需要把当前接口返回内容用于下一个接口请求,应用场景:登录接口返回的cookie或者token等,下面就简单描述一下两种提取器的使用和需要注意的事项:1、RegularExpressionExtractorApplyto:待研究;Fieldtocheck:取值的地方,ReferenceName:取得值后存放值的变量......
  • 界面组件DevExpress中文教程 - 如何使用UI本地化客户端工具本地化应用
    DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpressDashboardeXpressApp框架、适用于VisualStudio的CodeRush等一系列辅助工具。获取DevExpressv23.2正式版下载DevExpress技术交流群9:909157416      欢迎一起进群讨论在2023年12月(......
  • NodeJS框架对比 - Express、Koa、Egg、Nest等
     Express.jsExpress.js是Node.JS诞生之初,最早出现的一款框架,现在仍然很流行,作者是TJ。Express是基于回调,也是node中最常见的Error-First的模式(第一个参数是error对象)一个简单的Express服务器查看代码constexpress=require('express');constapp=express();/*......
  • 动力节点RabbitMQ教程|12小时学会rabbitmq消息中间件-02
    RabbitMQ集群cluster与高可用RabbitMQ的集群分两种模式,一种是默认集群模式,一种是镜像集群模式;在RabbitMQ集群中所有的节点(一个节点就是一个RabbitMQ的broker服务器)被归为两类:一类是磁盘节点,一类是内存节点;磁盘节点会把集群的所有信息(比如交换机、绑定、队列等信息)持久化......
  • Prometheus+Grafana+Jmeter监控服务器资源及中间件(Prometheus & node_exporter &mysq
    一、Prometheus&node_exporter&Grafana的原理Prometheus:Prometheus是一个开源的系统监控和报警工具包,它负责定时从各种数据源(如NodeExporter)中获取指标数据,并将其存储在自己的时间序列数据库中。Prometheus支持灵活的查询和报警功能,用户可以方便地对这些指标数据进行查询......
  • [Express]中间件的分类以及注意事项
    中间件的分类①应用级别的中间件通过app.use()或app.get()或app.post(),绑定到app实例上的中间件,叫做应用级别的中间件②路由级别的中间件绑定到express.Router()实例上的中间件,叫做路由级别的中间件。它的用法和应用级别中间件没有任何区别。只不过,应用级别中间件是绑定到......
  • 这样加个中间件,接口速度提升 1000%
    本文是在开发mockm周边过程中的创作。它可以快速生成api以及创造数据,开箱即用,便于部署,恳求不吝提出宝贵意见。动机最近在做一个curd项目,这里我们代名为myApi,用于实现0代码、无需声明模型、自动实现增删改查一些列的接口,支持任意关系型数据库。经过几天的努力,终于把基......
  • 无涯教程-ExpressJS - Bug调试
    Express使用Debug模块记录有关路由匹配,中间件以及应用模式等信息。要查看Express中使用的所有内部日志,请在启动应用程序时将DEBUG环境变量设置为Express:*-DEBUG=express:*nodeindex.js将显示以下输出。当您的应用程序组件无法正常运行时,这些日志非常有用,您还可以将DEBU......
  • Qt 解决qtcreator工程文件例程报错error: cannot initialize object parameter of typ
    qt下载好并且环境配置完成,kits和qt都已配置完成在qtcreator中,在终端手动编译qmakemake都完全没问题,但是在qtcreator中却报错。即使是新建工程例程都报错。版本qt5.6.0qtcreator4.11.0报错main.cpp:96:error:cannotinitializeobjectparameteroftype‘QWidget’wi......
  • Qt cannot initialize object parameter of type ‘QWidget‘ with an expression of
    报错如图:qtcreator工程文件例程报错error:cannotinitializeobjectparameteroftype‘QWidget’withanexpressionoftype‘tab_workface’问题分析可能因为qtcreator4.11.0basedonqt5.12版本略微冲突导致。。问题解决帮助->关于插件,将ClangCo......