梗概

在Koa应用程序中,中间件按照先进先出(First In First Out)的顺序执行。当一个HTTP请求到达应用程序时,它会依次经过注册的中间件函数,直到最终响应给客户端。

示例

下面是一个简单的示例展示了中间件的执行顺序:

const Koa = require('koa');
const app = new Koa();
 
// 第一个中间件
app.use(async (ctx, next) => {
    console.log('第一个中间件 - 开始');
    await next();
    console.log('第一个中间件 - 结束');
});
 
// 第二个中间件
app.use(async (ctx, next) => {
    console.log('第二个中间件 - 开始');
    await next();
    console.log('第二个中间件 - 结束');
});
 
// 第三个中间件
app.use(async (ctx, next) => {
    console.log('第三个中间件 - 开始');
    ctx.body = 'Hello, World!';
    console.log('第三个中间件 - 结束');
});
 
app.listen(3000);

当你访问http://localhost:3000时,控制台会输出以下内容:

第一个中间件 - 开始
第二个中间件 - 开始
第三个中间件 - 开始
第三个中间件 - 结束
第二个中间件 - 结束
第一个中间件 - 结束

这表明每个请求会依次经过所有注册的中间函数,并且按照它们注册的顺序执行。