nest.js 依赖注入

 按照nest官方文档,使用nest CLI创建controller service module

$ nest g controller products
$ nest g service products
$ nest g module products

 框架会自动生成依赖关系,在app.module.ts中

nest.js 依赖注入_第1张图片

上图中注释掉掉//controllers, //providers 就是框架自动生成的,带来了很多麻烦。 编译不通过,如下图。

nest.js 依赖注入_第2张图片

这个依赖注入的问题困扰了几个小时,最终还是踏踏实实一句一句的看官方文档。https://docs.nestjs.com/modules

nest.js 依赖注入_第3张图片

所以,一个Module就是一块空间,如果希望把自己的Service给其他Module使用,就exports出去。问题是nest为什么要在AppModule中自动生成其他Module的controllers和providers呢???应该是希望这些Modules可以直接相互注入吧,省去其他每个Module的imports,但是文档也没说明白呀!总之注释掉了AppModule中的controllers和providers后编译通过了。

 

nest.js 依赖注入_第4张图片

还没有研究清楚,为什么上图的写法,必须匹配下图的写法 ?

nest.js 依赖注入_第5张图片

 

如果其他模块如auth,需要使用SystemUserService中的方法,那么在AuthModule中需要引入SystemUserModule。

nest.js 依赖注入_第6张图片

你可能感兴趣的:(NestJS)