[英]Nestjs cant resolve dependencies
无法弄清楚我的代码有什么问题。 (我是 nestjs 的新手,我试图通过向它传递一些应用程序来学习它)。 控制台日志说:
Nest 无法解析 UrlsAfipService (?) 的依赖关系。 请确保索引 [0] 处的参数在 ApiModule 上下文中可用。
网址服务
import { Injectable } from '@nestjs/common';
import { AfipUrls } from './urls'
@Injectable()
export class UrlsAfipService {
constructor(
private readonly afipUrls: AfipUrls,
) {}
getWSAA () {
return this.afipUrls.homo().wsaa; // <- change to prod() for production
}
getService (service: string) {
return this.afipUrls.homo().service.replace('{service}', service)
}
}
网址
export class AfipUrls {
homo() {
return {
wsaa: 'https://url.com',
service: 'https://url.com'
}
}
prod() {
return {
wsaa: 'url.com',
service: 'url.com'
}
}
}
接口模块
import { Module } from '@nestjs/common';
import { ApiController } from './api.controller';
import { UrlsAfipService } from './urls-afip.service'
import { WsaaService } from './wsaa.service'
import { DescribeService } from './describe.service';
@Module({
controllers: [ApiController],
providers: [UrlsAfipService, WsaaService, DescribeService]
})
export class ApiModule {}
应用模块
import { Module } from '@nestjs/common';
import { ApiModule } from './api/api.module';
import { AppController } from './app.controller';
import { AppService } from './app.service';
@Module({
imports: [ApiModule],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
您已声明AfipUrls
作为一个依赖UrlsAfipService
但它没有任何模块中提供。
所以,你必须添加AfipUrls
到providers
的阵列ApiModule
。 然后就可以注射了。
providers: [UrlsAfipService, WsaaService, DescribeService, AfipUrls]
// ^^^^^^^^
但请注意,代码库中的编码环境特定值可能是代码异味。 考虑创建一个ConfigService
来封装使用dotenv
从环境变量或.env
文件中读取的环境特定变量。 有关更多信息,请参阅此答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.