Hello, I am trying to implement JWT alongside mongodb, but i keep getting this error. doesnt make sense at all, i think its a nestjs bug, because i have imported mongoose module in my user.module.ts
app.module.ts
@Module({
imports: [
ConfigModule.forRoot({
envFilePath: path.resolve(__dirname, '../.env'),
}),
MongooseModule.forRoot(process.env.MONGODB_URI),
AuthModule,
UsersModule,
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(JwtMiddleware).forRoutes('*');
}
}
auth.module.ts
@Module({
imports: [
JwtModule.register({
global: true,
secret: process.env.JWT_SECRET,
signOptions: { expiresIn: '30d' },
}),
UsersModule,
],
controllers: [AuthController],
providers: [AuthService],
exports: [AuthService],
})
export class AuthModule {}
@Module({
imports: [
MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
],
providers: [UsersService],
exports: [UsersService],
})
export class UsersModule {}
users.service.ts
@Injectable()
export class UsersService {
constructor(
@Inject(User.name)
private userModel: Model<IUser>,
) {}
async findOne(email: string): Promise<IUser | undefined> {
const user = this.userModel.findOne({ email: email.toLowerCase() });
return user;
}
}