gpt4 book ai didi

javascript - NestJS 依赖注入(inject)错误 : provider/module is not part of currently processed module

转载 作者:行者123 更新时间:2023-12-05 06:51:21 25 4
gpt4 key购买 nike

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

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

我正在关注文档 here我似乎碰壁了。我的应用程序无法编译,所以我无法进一步测试。我将添加一些文件作为示例。

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 提供者的 token 是字符串'UsersService'(或UsersService.name)而不是'USERS_SERVICE'

因此,只需使用简写语法 providers: [UsersService]provide: 中的正确标记即可。

关于javascript - NestJS 依赖注入(inject)错误 : provider/module is not part of currently processed module,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66182381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com