错误 [ExceptionHandler] Nest 无法导出提供程序/模块

问题描述 投票:0回答:1

这是我的app.module代码

 /* eslint-disable prettier/prettier */
import {  Module } from '@nestjs/common';
import { AppService } from './app.service';
import { ServeStaticModule } from '@nestjs/serve-static';
import { join } from 'path';
import { MongooseModule } from '@nestjs/mongoose';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { UserController } from './user/user.controller';
import { AuthModule } from './auth/auth.module';
import { UsersModule } from 'src/user/user.module';
import { EmailConfirmationController } from './email/emailConfirmation.controller';
import EmailService from './email/email.service';
import { EmailConfirmationService } from './email/emailConfirmation.service';
import { EmailModule } from './email/email.module';
import { JwtModule } from '@nestjs/jwt';
import { ClassesModule } from './modules/class.module';
import { ClassController } from './controllers/class.controller';
import { ClassService } from './services/class.service';

@Module({
  imports: [
    ConfigModule.forRoot({
      isGlobal: true
    }),
    ServeStaticModule.forRoot({
      rootPath: join(__dirname, '..', 'public'),
    }),
    MongooseModule.forRootAsync({
      imports: [ConfigModule],
      useFactory: async (configService: ConfigService) => ({
        uri: configService.get<string>('MONGODB_URI')
      }),
      inject: [ConfigService],
    }),
    AuthModule,
    UsersModule,
    EmailModule,
    ClassesModule,
    JwtModule.register({}),
  ],
  controllers: [UserController, EmailConfirmationController, ClassController],
  providers: [AppService, EmailConfirmationService, EmailService, ClassService],
})
export class AppModule {}

这是我的class.module代码

       /* eslint-disable prettier/prettier */
import { MongooseModule } from '@nestjs/mongoose';
import { Class, ClassSchema } from 'src/model/class.schema';
import { ClassService } from 'src/services/class.service';
import { Module } from '@nestjs/common';
import { User, UserSchema } from 'src/user/model/user.schema';
import { Homework, HomeworkSchema } from 'src/model/homework.schema';
import { ClassController } from 'src/controllers/class.controller';

@Module({
  imports: [
    MongooseModule.forFeature([{ name: Class.name, schema: ClassSchema }]),
    MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
    MongooseModule.forFeature([
      { name: Homework.name, schema: HomeworkSchema },
    ]),
  ],
  providers: [ClassController],
  exports: [ClassService],
})
export class ClassesModule {}

这是我的电子邮件模块代码

import { Module } from '@nestjs/common';
import EmailService from './email.service';
import { ConfigModule } from '@nestjs/config';
import { EmailConfirmationController } from './emailConfirmation.controller';
import { EmailConfirmationService } from './emailConfirmation.service';
import { UsersModule } from 'src/user/user.module';
import { JwtModule } from '@nestjs/jwt';
import { ClassService } from 'src/services/class.service';
import { ClassesModule } from 'src/modules/class.module';

@Module({
  imports: [ConfigModule, UsersModule, ClassesModule, JwtModule.register({})],
  controllers: [EmailConfirmationController],
  providers: [EmailService, EmailConfirmationService],
})
export class EmailModule {}

我收到此声明错误 错误 [ExceptionHandler] Nest 无法导出不属于当前处理的模块 (ClassesModule) 一部分的提供程序/模块。请验证导出的 ClassService 在此特定上下文中是否可用。 可能的解决方案:

  • ClassService 是 ClassesModule 中相关提供者/导入的一部分吗?

请帮忙。非常感谢

javascript backend nest
1个回答
0
投票
 /* eslint-disable prettier/prettier */
import { MongooseModule } from '@nestjs/mongoose';
import { Class, ClassSchema } from 'src/model/class.schema';
import { ClassService } from 'src/services/class.service';
import { Module } from '@nestjs/common';
import { User, UserSchema } from 'src/user/model/user.schema';
import { Homework, HomeworkSchema } from 'src/model/homework.schema';
import { ClassController } from 'src/controllers/class.controller';

@Module({
  imports: [
    MongooseModule.forFeature([{ name: Class.name, schema: ClassSchema }]),
    MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
    MongooseModule.forFeature([
      { name: Homework.name, schema: HomeworkSchema },
    ]),
  ],
  providers: [ClassService],
  exports: [ClassService],
})
export class ClassesModule {}

你可以试试这个代码。它应该包含 ClassService 而不是 ClassController。在提供者中。

我们中的Provider已经可以用作服务文件了

© www.soinside.com 2019 - 2024. All rights reserved.