nestjs核心之Module类

src/core/injector/module.ts

//模块类,用于存储模块与其他模块、组件、警卫、拦截器、控制器的关系
export class Module {
    //关联模块集合
    private _relatedModules = new Set();
    //模块下组件,存储的是实例包装器,键为组件名
    //注意!模块本身也作为组件存储在其中
    private _components = new Map>();
    //可注入类,值也是实例包装器,被包装的一般为警卫、拦截器等
    private _injectables = new Map>();
    //模块下控制器,值为实例包装器
    private _routes = new Map>();
    //模块导出组件名集合,组件必须存储在_components中
    private _exports = new Set();

    constructor(
        //模块类构造函数
        private _metatype: NestModuleMetatype,
        //父模块构造函数数组
        private _scope: NestModuleMetatype[],
        container: NestContainer,
    ) {
        //使用容器添加核心可注入组件,这里的可注入不是指警卫、拦截器,而是组件
        //即内置组件
        this.addCoreInjectables(container);
    }

    get scope(): NestModuleMetatype[] {
        return this._s

你可能感兴趣的:(#,nest.js)