[英]Nest - Nest can't resolve dependencies
我有一個非常簡單的CryptoModule
,如下所示:
import { Module } from '@nestjs/common';
import { CryptoService } from './crypto.service';
@Module({
providers: [CryptoService],
exports: [CryptoService],
})
export class CryptoModule {}
現在服務CryptoService
使用環境變量來設置密鑰,為此我使用 Nest Config package。
import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import Cryptr from 'cryptr';
@Injectable()
export class CryptoService {
constructor(private readonly config: ConfigService, private cryptr: Cryptr) {
this.cryptr = new Cryptr(this.config.get('CRYPTO_SECRET'));
}
encrypt = this.cryptr.encrypt;
decrypt = this.cryptr.decrypt;
}
app.module
像這樣導入到 app.module 中:
imports: [
ConfigModule.forRoot({
envFilePath: !ENV ? '.env' : `.env.${ENV}`,
isGlobal: true,
}),
問題是我不斷收到以下錯誤:
“錯誤:Nest 無法解析 CryptoService (ConfigService, ?) 的依賴項。請確保索引 [1] 處的參數依賴項在 CryptoModule 上下文中可用。\n”
但是由於ConfigModule
是全局的,我認為它不必添加到加密模塊的導入中嗎? 順便說一句,我也試過這樣做,但仍然是同樣的錯誤信息……我錯過了什么嗎?
我目前唯一使用這個模塊的地方是:
import { Module } from '@nestjs/common';
import { UserService } from './user.service';
import { UserController } from './user.controller';
import { CryptoModule } from '../crypto/crypto.module';
@Module({
imports: [CryptoModule],
controllers: [UserController],
providers: [UserService],
})
export class UserModule {}
當然在服務中我導入了CryptoService
我認為問題在於您在構造函數中添加了private cryptr: Cryptr
。 Nest 正在嘗試解決此問題,但沒有模塊Cryptr
。
嘗試從構造函數中刪除它並添加一個變量cryptr
。
cryptr: Cryptr
constructor(private readonly config: ConfigService){ /* ... */
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.