如何通过nestjs中的类验证器验证我的环境变量?官方文档中没有示例,只有joi。但是对于 DTO,您几乎可以使用类验证器,因为接口不会在运行时编译等。而且我不想在我的应用程序中使用两个不同的验证器。
user12694034
问问题
595 次
1 回答
0
您可以使用以下方法创建环境架构类class-validator
:
// environment.ts
import {Injectable} from '@nestjs/common';
import {IsFQDN, IsString} from 'class-validator';
@Injectable()
export class Environment {
@IsFQDN()
DATABASE_HOST: string;
@IsString()
DATABASE_USERNAME: string;
@IsString()
DATABASE_PASSWORD: string;
}
然后向您的模块添加一个自定义提供程序,该提供程序将process.env
针对Environment
.
// app.module.ts
import {Module} from '@nestjs/common';
import {transformAndValidateSync} from 'class-transformer-validator';
import {Environment} from './environment';
@Module({
imports: [
// Imports
],
controllers: [
// Controllers
],
providers: [
{provide: Environment, useValue: transformAndValidateSync(Environment, process.env)}
],
})
export class AppModule {}
现在您应该能够注入Environment
以访问所有环境变量。
于 2021-04-08T17:56:22.260 回答