app.use(),简单说其实就是把函数存放到
this.middleware数组里,然后返回实例对象
this。
koa2中详细点,则是判断是generator函数,用
koa-convert(其实用的是
co)转换一次,再存放到
this.middleware数组里。
use(fn) { if (typeof fn !== 'function') throw new TypeError('middleware must be a function!'); if (isGeneratorFunction(fn)) { deprecate('Support for generators will be removed in v3. ' + 'See the documentation for examples of how to convert old middleware ' + 'https://github.com/koajs/koa/blob/master/docs/migration.md'); fn = convert(fn); } debug('use %s', fn._name || fn.name || '-'); this.middleware.push(fn); return this; }
真正执行是
app.listen。
具体源码可以看我这篇文章。
若川:学习 koa 源码的整体架构,浅析koa洋葱模型原理和co原理
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)