首页 > 其他分享 >中间件介绍

中间件介绍

时间:2023-02-05 15:45:30浏览次数:32  
标签:Run await 中间件 介绍 next WriteAsync context Response

1.介绍

2.组成

3.中间件的合作伙伴

            //自定义中间件,https://localhost:44391/test 请求结果为:
            /*
                1 start
                2 start
                Run
                2 end
                1 end              
             */
            //按照顺序执行每个Use的前逻辑,遇到Run之后再反向执行每个Use的后逻辑
            //Run相当于一个终结点,Run之后的中间件不会被执行,因为它只有一个RequestDelegate类型参数不可以调用next.Invoke();
            app.Map("/test", async pipeBuilder => {
                pipeBuilder.Use(async (context, next) => {
                    context.Response.ContentType = "text/html";
                    await context.Response.WriteAsync("1 start<br/>");
                    await next.Invoke();
                    await context.Response.WriteAsync("1 end<br/>");
                });
                pipeBuilder.Use(async (context, next) => {
                    await context.Response.WriteAsync("2 start<br/>");
                    await next.Invoke();
                    await context.Response.WriteAsync("2 end<br/>");
                });
                pipeBuilder.Run(async context => {
                    await context.Response.WriteAsync("Run<br/>");
                });
                pipeBuilder.Use(async (context, next) => {
                    await context.Response.WriteAsync("3 我在Run后面还能被执行吗?<br/>");
                    await next.Invoke();
                    await context.Response.WriteAsync("3 end<br/>");
                });
            });

标签:Run,await,中间件,介绍,next,WriteAsync,context,Response
From: https://www.cnblogs.com/long-live/p/mw.html

相关文章

  • Spring1 - 介绍
    Spring介绍最核心模块IoC:InverseofControl控制反转把创建对象的过程交给Spring进行管理AOP:AspectOrientedProgramming面向切面编程代码简化:把方法中......
  • OpenSSL 介绍(1)--概念及安装
    OpenSSL是一个功能丰富的开源软件包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份;本文主要介绍其基本概念及安装,文中所使用到的软件版本:OpenS......
  • 自我介绍
    韶菲昔冀簇间魁,椿陌翌殇冢央骇。意或哀唏蕃华未逝之时,亢志凌云、丹忱满腹,予殊荣雅誉于万花丛中,但却终归佚失于残烛之年,伴朽脊而惘然殒逝。既求索桂冠无异湮泯于枯髀,不若渰......
  • 反序列化类校验部分源码解析 断言 drf之请求 drf之响应 视图组件介绍及两个视图基类
     目录一、反序列化类校验部分源码解析(了解)二、断言三、drf之请求3.1Request能够解析的前端传入的编码格式3.2Request类有哪些属性和方法(学过)常用参数Res......
  • 自我介绍与学习心得
    这个作业属于哪个课程https://edu.cnblogs.com/campus/fzzcxy/2023learning这个作业要求在哪里https://edu.cnblogs.com/campus/fzzcxy/2023learning/homework/1......
  • vue.js客服系统实时聊天项目开发(二十二)vue项目中router.js路由介绍
    vue项目的路由就相当于我们在网址url上输入的地址,访问的具体网址就是路由拿到项目先看看路由文件,就能知道具体的访问地址了例如下面的router.jsimportVuefrom'vue'......
  • 反序列化类的校验部分源码解析-断言-drf之请求-drf之响应-视图组件介绍及两个视图基类
    目录反序列化类的校验部分源码解析-断言-drf之请求-drf之响应-视图组件介绍及两个视图基类-基于GenericAPIView的五个视图扩展类昨日内容回顾今日内容概要今日内容详细1反......
  • 书籍介绍-《自主移动机器人导论》
    书籍名称:IntroductiontoAutonomousMobileRobots作者:RolandSiegwart,IllahR.Nourbakhsh,andDavideScaramuzza出版:MIT原文地址:​​书籍推荐-《自主移动机器人导论......
  • mongdb基本概念介绍
    我们通过与关系型数据库的比较来说明MongoDB中的一些概念。SQLMongoDBdatabasedatabasetable(表)collection(集合)row(行)document(文档)column(列)field......
  • ATT&CK v10版本战术介绍执行(下篇)
    一、引言在上期文章中我们介绍了ATT&CK执行战术前6项技术内容,本期我们为大家介绍执行战术后7项技术内容,后续会陆续介绍ATT&CK其他战术内容,敬请关注。​二、ATT&CKv10简介MI......