簡體   English   中英

Nest 錯誤 - 錯誤 [ExceptionHandler] Nest 無法解析 AuthService 的依賴項(?,JwtService)

[英]Nest Error - ERROR [ExceptionHandler] Nest can't resolve dependencies of the AuthService (?, JwtService)

我正在嘗試用於用戶身份驗證的 JWT 服務出現問題

錯誤 [ExceptionHandler] Nest 無法解析 AuthService (?, JwtService) 的依賴項。 請確保索引 [0] 處的參數 UsersService 在 AuthModule 上下文中可用。

這是 auth.module

import { Module } from "@nestjs/common"
import { JwtModule } from '@nestjs/jwt';
import { UsersModule } from "../users/users.module";
import { AuthService } from "./auth.service"
import { PassportModule } from "@nestjs/passport";
import { AuthController } from './auth.controller';
import { MongooseModule } from "@nestjs/mongoose"
import { UserSchema } from "users/schemas/users.schema";
import { LocalStrategy } from './local.auth';

@Module({
  imports: [UsersModule, PassportModule, JwtModule.register({
    secret: 'secretKey',
    signOptions: { expiresIn: '60s' },
  }), MongooseModule.forFeature([{ name: "Users", schema: UserSchema }])],
  providers: [AuthService, LocalStrategy],
  controllers: [AuthController],
})
export class AuthModule { }

這是 App.module

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { UsersModule } from './users/users.module';
import { MongooseModule } from '@nestjs/mongoose';
import { KpiModule } from './kpi/kpi.module';
import { AuthModule } from './auth/auth.module';

@Module({
  imports: [    
    MongooseModule.forRoot('mongodb://127.0.0.1:27017/vstkpi?readPreference=primary'),
    UsersModule,
    KpiModule,
    AuthModule
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

和用戶服務

import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { Model } from 'mongoose';
import { User } from 'users/interfaces/users.interface';

@Injectable()
export class UsersService {
    constructor(@InjectModel('Users') private readonly userModel: Model<User>) {}

    //Get all users
    async getUsers(): Promise<User[]> {
        const users = await this.userModel.find().exec();
        return users
    }

    //Get single user
    async getUser(query: object ): Promise<User> {
        return this.userModel.findOne(query);
    }

    async addUser(
        firstname: string, 
        lastname: string, 
        jobtitle: string, 
        startdate: string,
        password: string,
        email: string): Promise<User> {
        return this.userModel.create({
            firstname,
            lastname,
            jobtitle,
            startdate,
            password,
            email
        });
    }

}

我曾嘗試重新排序進口等,但它沒有觸發該錯誤

添加了用戶模塊

import { Module } from '@nestjs/common';
import { UsersService } from './users.service';
import { UsersController } from './users.controller';
import { UserSchema } from 'users/schemas/users.schema';
import { MongooseModule } from '@nestjs/mongoose';

@Module({
    imports: [
        MongooseModule.forFeature([{ name: 'Users', schema: UserSchema }])
    ],
    providers: [UsersService],
    controllers: [UsersController]
})
export class UsersModule { }

您沒有從UsersModule模塊導出UsersService ,因此該提供程序對其他模塊不可見。

只需將其添加到UsersModule配置中:

exports: [UsersService]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM