Express 4.8.x—Express 中间件原理
middleware 中间件是express中最优雅的特性,它让中间件如此的无形,无形是由于不经意间开发了middleware却浑然不知,这很符合老子的无为而治的哲学思想。在express中(几乎)一切都是中间件。
Express 中间件原理
middleware 中间件是express中最优雅的特性,它让中间件如此的无形,无形是由于不经意间开发了middleware却浑然不知,这很符合老子的无为而治的哲学思想。在express中(几乎)一切都是中间件
。下面我们实际的开发个中间件:
var express = require('express'); var app = express(); // 中间件 01 function middle01(req,res,next){ req.siteName = "jsera.net - 开辟Javascript新纪元的网络平台"; next(); } // 中间件 02 function middle02(){ var accessNum = 0; return function(req,res,next){ accessNum += 1; req.accessNum = accessNum; next(); } } app.use(middle01); app.use(middle02()); app.get("/",function(req,res){ res.send(req.siteName + "\n" + "网站访问人数:" + req.accessNum); }) app.listen(3000);
代码有些长,并不复杂。 middle01 中间件的作用是,都会为每个req请求添加一个 siteName属性,调用next()
方法表示继续,如果不调用,浏览器就没有反应一直处于请求当中。
middle02 中间件有一点绕,它本身不是中间件实体
,当执行它时,会return一个中间件函数,属于一个闭包,它的作用是每次有请求时,都会给req请求对象加入一个 accessNum 属性,这个属性每次都会 +1 。
运行服务器后,刷新网页多次,会得到下面的结果:
jsera.net - 开辟Javascript新纪元的网络平台 网站访问人数:12
12
说明刷新了12次。
在express中(几乎)一切都是中间件
,路由器不也是中间件么,体会之后发现确实如此。
插件内部原理,在我们自己开发的 stuwebfk
中已详细介绍过。
很赞哦! ( 0
)