依赖注入
依赖关系的注入,如果不使用后端框架,那我们就需要进行手动的注入(C为B提供服务,B为A提供服务,我们需要手动注入依赖,才能使C为A提供服务),但是有了框架,框架就会自动的为我们进行注入依赖
在控制器代码中,就体现了依赖注入的过程:
ts
constructor(private readonly appService: AppService) {}
上述代码是使用
ts
的语法,如果不使用ts
语法需要在构造函数中声明,编写方式为:jsthis.appService = new AppService() {}
具体含义表示为:
private readonly
:变成一个只读不能修改的私有属性
appService: AppService)
:声明类型(实例:服务方法),声明完之后,NestJs
会自动实例化出一个对象,我们就可以直接使用这个实例:this.appService
AppService
为服务的方法,是从服务文件导入过来的,在服务文件中是一个方法类,用于处理业务逻辑,我们当然可以在控制器中进行处理业务逻辑,但是不推荐,因为这样不能进行复用,而且控制器是提供路由访问功能的,只是接收路由的,有必要与业务逻辑进行区分,因此,将业务逻辑进行区分出去,放到服务文件中,这样这个服务不仅可以提供给这个控制器,还可以提供给其他的控制器