现在的位置: 首页 > web前端 > 正文

koa2模块分析

2020年07月06日 web前端 ⁄ 共 886字 ⁄ 字号 评论关闭

  阅读koa2的源码得知,其中context.js、request.js、response.js三个文件分别是request、response、context三个模块的代码文件。


  koa2模块分析


  创建example.js,引入application.js,运行服务器实例启动监听代码:


  letKoa=require('./application');


  letapp=newKoa();


  app.use((req,res)=>{


  res.writeHead(200);


  res.end('helloworld');


  });


  app.listen(3000,()=>{


  console.log('listeningon3000');


  });


  现在在浏览器输入localhost:3000即可看到浏览器里显示“helloworld”。现在第一步我们已经完成了,对httpserver进行了简单的封装和创建了一个可以生成koa实例的类class,这个类里还实现了app.use用来注册中间件和注册回调函数,app.listen用来开启服务器实例并传入callback回调函数,第一模块主要是实现典型的koa风格和搭好了一个koa的简单的架子。接下来我们开始编写和讲解第二模块。


  koa2模块构造


  构造request、response、context对象


  context就是我们平时写koa代码时的ctx,它相当于一个全局的koa实例上下文this,它连接了request、response两个功能模块,并且暴露给koa的实例和中间件等回调函数的参数中,起到承上启下的作用。


  总之,request、response两个功能模块分别对node的原生request、response进行了一个功能的封装,使用了getter和setter属性,基于node的对象req/res对象封装koa的request/response对象。我们基于这个原理简单实现一下request.js、response.js,首先创建request.js文件,然后写入代码。

【上篇】
【下篇】

抱歉!评论已关闭.