由外及里,再由里及外。就像在洋葱横着挖了条隧道,我们穿过去,先是最外层,中间是最里层,最后又是最外层。
来看一个代码例子,四个中间件,依次执行,最后输出怎样的结果呢?
const Koa = require('koa');
const app = new Koa();
app.use((ctx, next) => {
ctx.body = '洋葱模型';
console.log(" == ");
next();
console.log(" == ");
})
app.use((ctx, next) => {
console.log(" ==== ");
next();
console.log(" ==== ");
})
app.use((ctx, next) => {
console.log(" ====== ");
next();
console.log(" ====== ");
})
app.use((ctx, next) => {
console.log("========");
next();
console.log("========");
})
app.listen(3000);
console.log('server is running!');
输出结果如下: