我想将配置提供程序从文档导入另一个提供程序。
我正在使用与文档here中相同的配置结构。
所以config.module.ts
看起来像这样:
import { Module, Global } from '@nestjs/common';
import { ConfigService } from './config.service';
@Global()
@Module({
providers: [
{
provide: ConfigService,
useValue: new ConfigService(
`config/env/${process.env.NODE_ENV || 'development'}.env`,
),
},
],
exports: [ConfigService],
})
export class ConfigModule {}
另一个提供者应该看起来像这样正确吗?
token.module.ts
import { Module, Global } from '@nestjs/common';
import { TokenService} from './token.service';
import { ConfigService } from './config.service';
@Global()
@Module({
import: [ConfigService]
providers: [TokenService],
exports: [TokenService],
})
export class TokenModule {}
虽然TokenService应该看起来像这样
token.service.ts
import { ConfigService } from '../../config/config.service';
export class TokenService {
constructor(private readonly configService: ConfigService) {}
test(): string {
return this.configService.get('TestVal');
}
}
但是当我在AppModule中导入TokenModule时,出现此错误The "path" argument must be one of type string, Buffer, or URL. Received type undefined
答案 0 :(得分:1)
您忘记将TokenService
标记为@Injectable()
。您需要将需要提供给其他服务的参数告知NestJS。