我正在尝试学习NodeJS框架。我已经为此初始化了一个项目,现在我试图添加身份验证以保护HTTP访问。我遵循NestJS文档,但是在将我的UsersService注入AuthService时遇到以下错误:
[嵌套] 14876-13/04/2020à09:26:19 [ExceptionHandler] Nest无法解析UsersService(?)的依赖项。请确保在索引[0]处的UserModel参数在AuthModule上下文中可用。
可能的解决方案:
-如果UserModel是提供者,它是否是当前AuthModule的一部分?
-如果UserModel是从单独的@Module导出的,那么该模块是否在AuthModule中导入?
@Module({
导入:[/ *包含UserModel的模块* /]
})
+ 2ms
错误:Nest无法解析UsersService(?)的依赖项。请确保在索引[0]处的UserModel参数在AuthModule上下文中可用。
似乎是由于在我的UsersService中进行了以下注入:
构造函数(@InjectModel('User')私有只读UserModel:模型){}
但是我不知道如何解决这个问题。我的培训项目存储在github上:
https://github.com/afontange/nest-js.git
我阅读了同一主题的其他票证,但我不知道解决问题的办法。
感谢您的帮助。
答案 0 :(得分:0)
export const UsersSchema = new Schema({
name: String,
});
Module({
imports: [
MongooseModule.forFeature([{ name: 'Users', schema: UsersSchema }]) // add
],
controllers: [],
providers: [],
exports: []
}) 导出类AuthModule {}
您是否添加了Auth.module.ts
答案 1 :(得分:0)
AuthModule如下:
import { 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';
import { UsersService } from '../users/users.service';
@Module({
imports: [UsersModule, PassportModule],
providers: [AuthService, LocalStrategy, UsersService],
})
export class AuthModule {}