繁体   English   中英

NestJS 依赖注入错误:提供程序/模块不是当前处理模块的一部分

[英]NestJS Dependency Injection Error: provider/module is not part of currently processed module

我刚开始使用 NestJS,我想知道解决此错误的最佳方法是什么

Nest cannot export a provider/module that is not a part of the currently processed module (UsersModule). Please verify whether the exported UsersService is available in this particular context.

我正在关注这里的文档,我似乎遇到了障碍。 我的应用程序无法编译,因此无法进一步测试。 我将添加一些文件作为示例。

auth.module.ts

import { Module } from '@nestjs/common';
import { UsersModule } from 'src/users/users.module';
import { AuthController } from './controllers/auth/auth.controller';
import { AuthService } from './services/auth/auth.service';

@Module({
  imports: [UsersModule],
  controllers: [AuthController],
  providers: [AuthService],
  exports: [AuthService],
})
export class AuthModule {}

users.module.ts

import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { UsersController } from './controllers/users/users.controller';
import { User, UserSchema } from './schemas/user.schema';
import { UsersService } from './services/users/users.service';

@Module({
  imports: [
    MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
  ],
  controllers: [UsersController],
  providers: [
    {
      provide: 'USERS_SERVICE',
      useClass: UsersService,
    },
  ],
  exports: [UsersService],
})
export class UsersModule {}

users.service.ts

import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { Model } from 'mongoose';
import { CreateUserDto } from 'src/users/dto/user.dto';
import { User, UserDocument } from 'src/users/schemas/user.schema';
import { IUserService } from './user';

@Injectable()
export class UsersService implements IUserService {
  constructor(@InjectModel(User.name) private userModel: Model<UserDocument>) {}

  // async code for database modification

  }
}

任何帮助将不胜感激! 非常感谢!

UsersService提供者的令牌是字符串'UsersService' (或UsersService.name )而不是'USERS_SERVICE'

因此,只需使用简写语法providers: [UsersService]provide:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM