【发布时间】:2021-11-13 22:23:33
【问题描述】:
我的 user.module.ts:
import { forwardRef, Module } from '@nestjs/common';
import { UsersService } from './users.service';
import { UsersController } from './users.controller';
import { UserSchema } from './schemas/user.schema';
import { MongooseModule } from '@nestjs/mongoose';
import { AuthModule } from 'src/auth/auth.module';
@Module({
imports: [MongooseModule.forFeature([{name: 'User', schema: UserSchema}]),AuthModule],
controllers: [UsersController],
providers: [UsersService],
exports: [UsersService]
})
export class UsersModule {}
我的 auth.module.ts
import { forwardRef, Module } from '@nestjs/common';
import { AuthService } from './auth.service';
import { UsersModule } from '../users/users.module';
import { PassportModule } from '@nestjs/passport';
import { LocalStrategy } from './local.strategy';
@Module({
imports: [forwardRef(() => UsersModule), PassportModule],
providers: [AuthService, LocalStrategy],
})
export class AuthModule {}
我的 app.module.ts
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { UsersModule } from './users/users.module';
@Module({
imports: [UsersModule,MongooseModule.forRoot('mongodb://localhost:27017/nest1')],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
这给了我错误:
[12:55:42 pm] 发现 0 个错误。监视文件更改。
[Nest] 15944 - 20/09/2021, 12:55:45 pm LOG [NestFactory] 开始 Nest 应用程序... [Nest] 15944 - 20/09/2021, 12:55:45 pm LOG [InstanceLoader] MongooseModule 依赖初始化 +126ms [Nest] 15944 - 20/09/2021,下午 12:55:46 错误 [ExceptionHandler] Nest 不能 解决 UsersService (UserModel, ?) 的依赖关系。请做出来 确保索引 [1] 处的参数 AuthService 在 UsersModule 上下文。
可能的解决方案:
- 如果 AuthService 是提供者,它是当前 UsersModule 的一部分吗?
- 如果 AuthService 是从单独的 @Module 导出的,那么该模块是否会导入到 UsersModule 中? @模块({ 导入:[ /* 包含 AuthService 的模块 */ ] })
错误:Nest 无法解析 UsersService (UserModel, ?)。请确保索引 [1] 处的参数 AuthService 是 在 UsersModule 上下文中可用。
可能的解决方案:
如果 AuthService 是提供者,它是当前 UsersModule 的一部分吗?
如果 AuthService 是从单独的 @Module 导出的,那么该模块是否会导入到 UsersModule 中? @模块({ 导入:[ /* 包含 AuthService 的模块 */ ] })
在 Injector.lookupComponentInParentModules (C:\Users\Asus\Desktop\BILDEMP\ems-by-nestjs\employee-management-system\node_modules@nestjs\core\injector\injector.js:193:19) 在 Injector.resolveComponentInstance (C:\Users\Asus\Desktop\BILDEMP\ems-by-nestjs\employee-management-system\node_modules@nestjs\core\injector\injector.js:149:33) 在 resolveParam (C:\Users\Asus\Desktop\BILDEMP\ems-by-nestjs\employee-management-system\node_modules@nestjs\core\injector\injector.js:103:38) 在 async Promise.all (索引 1) 在 Injector.resolveConstructorParams (C:\Users\Asus\Desktop\BILDEMP\ems-by-nestjs\employee-management-system\node_modules@nestjs\core\injector\injector.js:118:27) 在 Injector.loadInstance (C:\Users\Asus\Desktop\BILDEMP\ems-by-nestjs\employee-management-system\node_modules@nestjs\core\injector\injector.js:47:9) 在 Injector.loadProvider (C:\Users\Asus\Desktop\BILDEMP\ems-by-nestjs\employee-management-system\node_modules@nestjs\core\injector\injector.js:69:9) 在 async Promise.all (索引 3) 在 InstanceLoader.createInstancesOfProviders (C:\Users\Asus\Desktop\BILDEMP\ems-by-nestjs\employee-management-system\node_modules@nestjs\core\injector\instance-loader.js:44:9) 在 C:\Users\Asus\Desktop\BILDEMP\ems-by-nestjs\employee-management-system\node_modules@nestjs\core\injector\instance-loader.js:29:13
【问题讨论】:
-
我的意思是,我没有使用nest.js 的经验,但错误特别指出,“请确保索引[1] 处的参数AuthService 在UsersModule 上下文中可用”所以输入
AuthService在你的 user.module.ts 中的某个地方。可能在UsersService之后的providers数组中
标签: javascript node.js web-applications nestjs