• 简述 express中间件


    Express是一个自身功能极简,完全是路由和中间件构成一个web开发框架:从本质上来说,一个Express应用就是在调用各种中间件。

    浏览器向服务器发送一个请求后,服务器直接通过request.定位属性的方式得到通过request携带过去的数据(有用户输入的数据和浏览器本身的数据信息)。这中间就一定有一个函数将这些数据分类做了处理,已经处理好了,最后让request对象调用使用,对的,这个处理数据处理函数就是我们要说的 中间件 。由此可见,中间件可以总结以下几点:

    1、封装了一些处理一个完整事件的功能函数。

    2、非内置的中间件需要通过安装后,require到文件就可以运行。

    3、封装了一些或许复杂但肯定是通用的功能。

    由此可见,中间件在Express开发中的重要性,因此这里我们就专门来具体说一下中间件。

    中间件的结构

    1、app.use([path],function)

    path:是路由的url,默认参数‘/',意义是路由到这个路径时使用这个中间件

    中间件其是一个函数,在响应发送之前对请求进行一些操作,这个中间件函数可以理解为就是function(request,response,next){

    //做该干的事情

    //做完调用下一个函数

    Next()

    }

    这个函数有些不太一样,它还有一个next参数,而这个next也是一个函数,它表示函数数组中的下一个函数

    函数数组又是什么意思呢

    express内部维护一个函数数组,这个函数数组表示在发出响应之前要执行的所有函数,也就是中间件数组

    使用app.use(fn)后,传进来的fn就会被扔到这个数组里,执行完毕后调用next()方法执行函数数组里的下一个函数,如果没有调用next()的话,就不会调用下一个函数了,也就是说调用就会被终止。

    下面具体代码 实现下 就简单易懂了

     1 app.use((req,res,next)=>{
     2 
     3     console.log('11');
     4 
     5     next();
     6 
     7     console.log('111');
     8 
     9 })
    10 
    11 app.use((req,res,next)=>{
    12 
    13     console.log('22');
    14 
    15     next();
    16 
    17 console.log('222');
    18 
    19 });
    20 
    21 app.use((req,res,next)=>{
    22 
    23     console.log('33');
    24 
    25     next();
    26 
    27 console.log('333');
    28 
    29 });

    这段代码的输出结果为

    11 22 33 333 222 111

    可以看到在执行完下一个函数后又会回到之前的函数执行next()之后的部分

  • 相关阅读:
    Linux密码文件介绍
    MongoDB与微服务
    MongoDB应用场景及选型
    MongoDB性能诊断工具
    1.7每日进度
    《架构即未来》(3)
    《架构即未来》(2)
    论面向服务架构设计
    浅谈MVC设计模式
    《架构即未来》(1)
  • 原文地址:https://www.cnblogs.com/chensong1113/p/10263900.html
Copyright © 2020-2023  润新知