Skip to content

Connect以及中间件 #4

Description

@chengfengliu

百度百科:
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。**相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。**执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境。
知乎:
需要利用服务的人(前端写业务的),不需要知道底层逻辑(提供服务的)的具体实现,只要拿着中间件结果来用就好了。
Node.js
使用use()方法来添加中间件,中间件其实就是个简单的JavaScript函数,除了处理req和res对象之外,还接收一个next函数来做流控制。

深入浅出nodejs
middleware

从图可以看出从HTTP请求到具体业务逻辑之间,其实有很多的细节要处理。对于Web应用的各种基础功能(查询字符串,cookie),我们通过中间件来完成,每个中间件处理掉相对简单的逻辑,最终汇成强大的基础框架。
由于中间件就是前述的那些基本功能,所以它的上下文也就是请求对象和响应对象:req和res。有一点区别的是,由于Node异步的原因,我们需要提供一种机制,在当前中间件处理完成后,通知下一个中间件执行。

//一个中间件
var middleware1 = funciton(req,res,next){
    //TODO
    next();
}
//另一个中间件
var middleware2 = funciton(req,res,next){
    //TODO
    next();
}
//将所有中间件串联起来,挂载中间件到路径上,若未指明path则默认为'/‘
//当路径被请求时,中间件函数就被依次执行(最后那个函数也是中间件)
app.use('path',middleware1,middleware2,function(req,res){
    //TODO
});

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions