zoukankan      html  css  js  c++  java
  • express 洋葱模型 路由管理 中间件

      express 路由管理,通过 app.express();  app.METHOD(path,fn(req, res)的方式进行路由的配置。实现了请求的接口的路由的拆分。那么可以将路由配置,分发到不同的文件中,进行分类管理。非常的nice。那么单个接口的能不能拆分更小的粒度尽心管理呢,答案是可以的。那就是中间件的方式。

     express在路由函数回调函数中进行中间件处理的方式是依赖于,回调函数的第三个参数next ,如下:

     app.get('/',function(req, res,next){

    // 逻辑1 比如数据的初步处理

    next() // 调用next() 执行下一个回调函数

    if(property1)  {// 进行一些处理}   //  可以利用后面中间件的一些状态通过res或者req穿出。

    // 挂载参数部分  req.property = property;

    },function(req, res,next){

    // 逻辑2 比如数据的一些判断之后的逻辑

    next()

    },function(req, res,next){

    // 逻辑3 必须结果处理的一些逻辑

    // 得出的property1状态,如果会影响上面的一个中间件的话 ,可以将property1挂载在res上,在上面的中间件函数中可以访问的到

    res.property1 = property1 ; 

    })

    上述例子给了一个大致的利用中间件,对业务逻辑进行划分的思路,实际情况可以自己来划分。将这些逻辑代码划分在多个函数中之后,那么久可以对复杂的逻辑

    放在不同的文件中进行单独处理。 需要的时候,然后require进来。更好的定位错误,和管理项目。

    但是特别要注意的是!!! ,这里没一个函数代码中的 ,一些特殊参数,如上列子中,的proerpry不能够再直接在后面的中间件中访问到,需要挂载到req或者res上

    通过res.property 进行访问。

    并且!!!!!!!!   ,这里的所有next之后的回调函数,并非是一直向下的,什么意思,express中间件是一个横向的洋葱模型,大家想象一下,拿一根很长的针,从洋葱的左侧,经过一层一层的外皮内部之后,又经过一层一层的外皮到达洋葱的另一端。 

    就是数据或逻辑的处理,是可以穿入和传出的。并非是下面的回到函数,一直接收上面回调函数的影响结果。也可以在下面的回调函数中,创建状态丢给上面的中间件进行判断和处理的。而这个还是依赖于req,res。比如上面的  property1属性的挂载。

    在打一个通俗的彼方,有3个朋友一起做火车出行。他们各自有一包东西,过安检的时候,第一个包放上去,

    ,缓慢的通过机器进行检查。通过第一个包时,发现里面有瓶酒精,(他们准备火车上煮火锅)机器发出了警报,民警提示不能够带酒精上火车。

    后面两位朋友,默默的把自己包里的酒精拿了出来。(看来是一顿大火锅)第三个包通过后,机器提示安全通过,第一个朋友忽然意识到,没道理啊,

    我明明塞了一捆鞭炮放在第三个朋友包里,怎么机器没有报警。这些通过机器没有报警这么一个状态,第一个朋友知道了,第三个朋友早就知道鞭炮不能上火车,没有带鞭炮了。(他准备吃火锅之间,放鞭炮庆祝的)

    在上面的模型中,这台安检机器 ,就是携带数据(背包和里面的东西)不断的通过检测,背包里的危险品被拿出。第一个包被检查出酒精,后面的朋友自觉的拿出了酒精

    就是前面中间件对后面中间件的影响,而 第三个包检查完没有鞭炮是,他们知道了,第一个人知道了鞭炮没带,就是后面中间件对前面中间件的影响。

  • 相关阅读:
    Docker系列
    Eclipse 安装TestNG插件,结合Maven使用
    HttpClient设置忽略SSL,实现HTTPS访问, 解决Certificates does not conform to algorithm constraints
    Jenkins Html Rport 使用frame报错解决办法
    Zend Framework1 框架入门(针对Windows,包含安装配置与数据库增删改查)
    Windows下Nginx配置SSL实现Https访问(包含证书生成)
    Windows下Nginx Virtual Host多站点配置详解
    幽灵般的存在:零宽空白
    我的公司培训讲义(2):设计模式思想精要教程
    突如其来而又必然的离职
  • 原文地址:https://www.cnblogs.com/yaya666/p/13500780.html
Copyright © 2011-2022 走看看