将一系列中间件视为一个中间件
开始使用
安装此模块的命令:npm install composable-middleware
var composable_middleware = require( 'composable-middleware' );
文档
中间件是遵循特定约定的函数。composable-middleware允许使用一系列中间件函数,就好像它们是单个中间件函数一样。 有了它,中间件堆栈就是中间件,并成为一流的对象。 使用composable-middleware,您可以:
- 定义由多个中间件步骤组成的中间件,并将其包含在另一个中间件堆栈中。
- 将中间件堆栈分配给变量或将其索引到对象中。
- 形成条件或分支中间件路径,根据主机名,HTTP方法或路由等动态选择中间件。
- 创建一个基础中间件堆栈,这是多个站点或项目共有的基础中间件堆栈,包括常用操作,正确排序,并根据需要添加特定于站点的附加内容。
您可以通过在 composable-middleware 函数的参数中定义其步骤来编写中间件:
var mw =
composable_middleware(
connect.logger(),
connect.gzip(),
);
或者使用它的use()函数:
var mw =
composable_middleware()
.use(connect.logger())
.use(connect.gzip());
然后将它包含在另一个中间件堆栈中:
var okay =
composable_middleware()
.use(mw)
.use(
function(req,res,next) {
res.send('okay');
})
然后你就可以在Connect,Express等基于中间件的框架中使用该中间件:
var app = connect();
app.use(okay);
app.listen(3000);
这个包的设计目标之一是在通过中间件步骤排序时最小化开销。 值得注意的是,它不支持挂载路径或路由。 它根本不检查URL。 这最好留给中间件,也许中间件根据路由将请求路由到不同的中间件堆栈。
composable_middleware软件也不会处理错误或未处理的请求,而是将错误路由到期望有错误参数的中间件。 由于中间件堆栈可能被视为另一个中间件堆栈中的中间件,因此不能认为到达堆栈的末端具有任何意义。 如果中间件运行的整体框架没有这样做,您将需要提供中间件(也许我们应该称之为'最终软件')来发送404响应或记录错误并发送500响应。
网友评论