如果你想要在Amodule里使用Bmodule里的服务那么可以选择:
如果模块外导入你想要在Amodule里使用Bmodule里的服务那么可以选择:
- 在Bmodule里写入
exports:[BService]
- 在Amodule里写入
import:[Bmodule]
没错,第二次是导入module,而不是service
这是最容易看错的
导入之后,有两种方式注入依赖
1.属性注入依赖
1 2 3 4 5 6 7 8 9 10 11
| @Injectable() export class OrderService {
@Inject(BService) private bService:BService; getOrderDesc():string{ const name = this.userService.getUserName(); return `Order for ${name}`; } }
|
2.构造函数注入
1 2 3 4 5 6 7 8
| @Injectable() export class OrderService { constructor(private userService:UserService){} getOrderDesc():string{ const name = this.userService.getUserName(); return `Order for ${name}`; } }
|
全局模块
用@Global
装饰器声明就完事了(在module声明)
1 2 3 4 5 6 7 8 9 10 11
| import { Global, Module } from '@nestjs/common'; import { UserService } from './user.service'; import { UserController } from './user.controller';
@Global() @Module({ controllers: [UserController], providers: [UserService], exports: [UserService], }) export class UserModule {}
|