首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在nestjs中使用class-validator验证环境变量?

在nestjs中使用class-validator验证环境变量?
EN

Stack Overflow用户
提问于 2020-04-26 19:19:37
回答 1查看 400关注 0票数 3

如何在nestjs中通过class-validator验证我的环境变量?在官方文档中没有示例,只有joi。但是对于DTO,你很大程度上受限于类验证器,因为接口不会在运行时编译,等等。我不想在我的应用程序中使用两个不同的验证器。

EN

回答 1

Stack Overflow用户

发布于 2021-04-09 01:56:22

您可以使用class-validator创建环境架构类

代码语言:javascript
复制
// 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;

}

然后,向您的模块添加一个自定义提供程序,该提供程序将根据Environment验证process.env

代码语言:javascript
复制
// 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来访问所有环境变量了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61439809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档