美文网首页
koa源码解读

koa源码解读

作者: 小样_简书 | 来源:发表于2019-07-16 19:33 被阅读0次

1、入口

const Koa = require('koa');

const app = new Koa();

require在查找第三方模块时,会查找该模块下package.json文件的main字段,查看koa仓库目录下下package.json文件,可以看到模块暴露的出口是lib目录下的application.js文件

1.1 application.js

进入lib/appplication.js文件是向外导出了创建class实例的构造函数,它继承了events,这样就会赋予框架事件监听和事件触发的能力

1.2 application

所以,在app.js 中引用koa时,变量Koa就是指向该Application类

2、接着我们会在app上使用use挂载中间件函数和listen监听响应

需要搞清楚的问题有两个:

app.use 的作用是挂载中间件,它做了什么?

app.listen 的作用是监听端口,它做了哪些工作?

1.3 use方法

在use方法中,首先判断穿参是否为函数,否则抛出错误;判断是否为generator函数,给出log表示generator 用法已被弃用,并且通过convert函数进行转换处理

找到convert函数,如下

1.4 convert

在Koa的v1版本和v0版本,异步控制方案是Generator+Promise+Co,中间件定义Generator Function。Koa v2版本,异步控制方案支持Async/Await,中间件用普通函数也可以

挂载之后,看下监听listen:

1.5 listen

3、中间件执行const fn = compose(this.middleware);

1.6 fn

compose小可爱出现了...

1.7 compose

4、整体分析过程

1.8 all

相关文章

  • 解读koa源码

    先占坑,3月会开始写没想到拖到4月了 相关链接:解读并实现一个简单的koa-router

  • Koa源码解读

    初始化 执行koa()的时候初始化了一些很有用的东西,包括初始化一个空的中间件集合,基于Request,Respo...

  • koa源码解读

    1、入口 constKoa =require('koa');constapp =newKoa(); require...

  • koa 源码解读

    源码结构 context.jscontext 是使用delegates将节点request和response对象封...

  • koa源码解读指南

    导语:用过node的同学相信都知道koa。截止目前为止,koa目前官方版本最新是2.7.0。本文意在深入分析koa...

  • Koa2源码解读

    此文项目代码:https://github.com/bei-yang/I-want-to-be-an-archit...

  • Koa源码阅读

    Koa源码 继着上文的Co源码以及与Koa的深入理解,开始学习下Koa是怎么写的。我看的版本是1.1.2的。 从p...

  • koa思维导图与源码解读

    思维导图: 源码解读 我们经常会像下边这样用: 1.new Koa生成的实例app具有以下的属性和方法: 2.ap...

  • koa-router @2.0.0 源码解读

    在使用node开发应用时需要用到各种插件,版本不适配会出现各种各样的错误,这时你想直接搜索出解决方案,简直是大海捞...

  • 你不能不知道的Koa实现原理

    前言 什么?这是一篇源码解读文章 ? 那一定很枯燥!不看。 我把 Koa 的核心实现剥离成了 7 个小节,循序渐进...

网友评论

      本文标题:koa源码解读

      本文链接:https://www.haomeiwen.com/subject/jecxlctx.html