1

我有UserService哪个是必需的UserModule,然后添加到exports

import {Module} from '@nestjs/common'
import {TypeOrmModule} from '@nestjs/typeorm'
import {User} from './user.entity'
import {UserService} from './user.service'

@Module({
  imports: [TypeOrmModule.forFeature([User])],
  components: [UserService],
  controllers: [],
  exports: [UserService]
})
export class UserModule{}

然后我有一个AuthModule需要使用UserServicewhich 执行此操作:

import * as passport from 'passport'
import * as PassportAzureAD from 'passport-azure-ad'
import * as session from 'express-session'
import {
  Module,
  NestModule,
  MiddlewaresConsumer,
  RequestMethod,
} from '@nestjs/common'
import {Logger} from '@nestjs/common'
import {UserModule} from '../user/user.module'

@Module({
  imports: [UserModule],
  components: [],
  controllers: []
})
export class AuthModule implements NestModule{
  public configure(consumer: MiddlewaresConsumer){
      // SNIP
      // How to use `UserService` here
  }
}

我如何使用UserService这里?文档说:

现在每个将导入 CatsModule 的模块(我们需要将 CatsModule 放入 imports 数组中)都可以访问 CatsService 并且将与所有正在导入该模块的模块共享同一个实例。

但没有给出你会如何做的例子。

4

1 回答 1

1

导出的需要在其构造函数UserService中导入,如下所示:AuthModule

@Module({
  imports: [UserModule],
  components: [],
  controllers: []
})
export class AuthModule implements NestModule{
  constructor(
    private readonly userService: UserService
  ) {}

  public configure(consumer: MiddlewaresConsumer){
    this.userService
  }
}

更多关于依赖注入的信息:

于 2018-04-10T19:57:40.600 回答