中间件调用顺序
关于 Koa 中间件最重要的一点是,它们在文件中的 写入/包含 顺序是它们在下游执行的顺序。一旦我们在中间件中找到一个 yield 语句,它就会切换到下一个中间件,直到我们到达最后一个。然后我们再次开始向上移动并从 yield 语句恢复函数。
例如,在下面的代码片段中,第一个函数先执行到 yield,然后执行第二个中间件直到 yield,然后执行第三个。由于这里没有更多的中间件,我们开始向上移动,以相反的顺序执行,即第三、第二、第一。这个例子总结了如何使用 Koa 方式的中间件。
var koa = require('koa');
var app = new koa();
//中间件订单
app.use(first);
app.use(second);
app.use(third);
function *first(next) {
console.log("I'll be logged first. ");
yield next;
console.log("I'll be logged last. ");
};
function *second(next) {
console.log("I'll be logged second. ");
yield next;
console.log("I'll be logged fifth. ");
};
function *third(next) {
console.log("I'll be logged third. ");
yield next;
console.log("I'll be logged fourth. ");
};
app.listen(3001);
运行此代码后访问 "/" 时,在控制台上我们将得到-
I'll be logged first.
I'll be logged second.
I'll be logged third.
I'll be logged fourth.
I'll be logged fifth.
I'll be logged last.
既然我们知道了如何创建自己的中间件,让我们来讨论一些最常用的社区创建的中间件。
现在我们知道了如何创建自己的中间件,让我们讨论一些最常用的社区创建的中间件。以下是一些最常用的中间件-
- koa-bodyparser
- koa-router
- koa-static
- koa-compress
我们将在后面的章节中讨论多个中间件。