koa初探(一)
当我们在学习某个新的知识点的时候,大部分情况下都是打开百度,或者谷歌,然后在搜索框中输入某个名词,这个时候大致在搜索项的前面几个,我们就可以看到一个关于这个东西的官方文档,然后点进去,基本就是关于这个东西的所有api和使用方法啦~
当然,一开始的时候我也许会饶有兴致地根据官方给出的例子在自己的电脑上跑一跑,看一看。很快,当我把例子跑完,我似乎明白了这究竟是怎么一回事的时候,我想要继续探索,于是就看到了无穷无尽的api,看了两眼,困意👀袭来~~~
讲了一堆废话,该进入正题啦~
官方给了这样一个例子:
大致解读一下,就是new出来一个koa
对象,利用它来创建一个服务器,并且使用了3000端口来监听状态。
中间对于请求的处理就是有一堆所谓middleware
(中间件)来处理,假设我们的koa服务器就是一个盒子,丢一个请求(request
)进入盒子,然后就可以从盒子中得到一个经过了一系列处理的响应结果(response
)。
const Koa = require('koa');
const app = new Koa();
// logger
app.use(async (ctx, next) => {
await next();
const rt = ctx.response.get('X-Response-Time');
console.log(`${ctx.method} ${ctx.url} - ${rt}`);
});
// x-response-time
app.use(async (ctx, next) => {
const start = Date.now();
await next();
const ms = Date.now() - start;
ctx.set('X-Response-Time', `${ms}ms`);
});
// response
app.use(async ctx => {
ctx.body = 'Hello World';
});
app.listen(3000);
以上这段代码的调用顺序对于只看官网的文字描述还是有点不够清晰的。
这看起来就像我们在写作业的时候,突然脑海中出现了奇思妙想,于是在某个时间点就跑出去玩耍了,玩到兴致快没有的时候,还记得作业没有写完,然后就又跑回去,从刚才停留的作业的地方又继续往下写,当然在玩的过程中还会有其他更好玩的,于是不停地跑出去,不过这个贪玩的小孩至少还记得当前玩完了还会跑回去把上一次没有玩完的事情做完。