对术语 middleware(中间件)的粗略理解
摘自《Node.js高级编程》一书中文版 p197:
----------------------------------------------------------------------------
在构建HTTP应用服务器时,通常需要它执行一些常规任务,诸如解析 cookies 头部,解析请求URL上的查询字符串、维护与关联会话、持久化会话数据、提交静态文件、解析请求主体、记录请求与响应以及其他等等。当对应用程序的核心逻辑进行编码时,不必显式地执行这些任务,它们应该由HTTP服务器应用程序逻辑进行处理。
一些任务涉及检查请求--请求头或请求主体--另一些涉及检查和修改响应,还有一些任务以上两者都涉及了。两者都需要执行的这类任务的一个例子是:想在记录每个到达请求细节的同时,也记录其对应响应的HTTP状态码,在这种情况下既需要检查 请求对象,也需要检查响应对象。你也许还希望能够设置或修改响应头,比如在使用浏览器cookies维护会话ID时。
在类似于Django、Cake、Rails或者Sinatra等典型的HTTP应用程序 框架中,执行这些任务的组件 通常被 称作中间件(middleware)。这些 中间件组件对请求-响应循环进行了包装,在到达应用程序代码之前扩展请求对象或者在响应前后对其进行修改。
--------------------------------------------------------------------------------
解析:从产品原料到最终成型之间,有若干道工序,每一道工序,即为一个中间件,将其封闭起来,使用时直接按顺序调用即可。(暂时先想到这些,待补...)