koa2中间件原理
中间件的执行顺序?
Koa是从第一个中间件开始执行,遇到 await next()
就进入下一个中间件,一直到执行到最后一个中间件。然后再逆序执行上一个中间件 await next()
后面的代码,一直到第一个中间件 await next()
后面的代码执行完毕才发出响应。
app.use(async (ctx, next) => {
console.log('1');
await next(); // 调用下一个middleware
console.log('5')
});
app.use(async (ctx, next) => {
console.log('2');
await next(); // 调用下一个middleware
console.log('4');
});
app.use(async (ctx, next) => {
console.log('3');
});
输出结果: 12345
在这个例子里,通过输出结果可以看出三个中间件的执行顺序是:中间件1 -> 中间件2 -> 中间件3 -> 中间件2 -> 中间件1
命令行 curl -d 'name=laowang&age=20' http://localhost:3000/user/addPerson 这种方式可以不通过postman发送一个post请求