文章目录
一、为什么需要环境变量验证
在 Node.js 项目中,环境变量(Environment Variables)是管理配置的核心方式。但在实际开发中常会遇到以下问题:
- 缺少必要环境变量导致运行时错误
- 变量类型不匹配(如将数字字符串当数字使用)
- 敏感信息泄漏风险
Joi 作为强大的 Schema 验证库,配合 NestJS 的配置模块可以完美解决这些问题。本文将通过完整示例展示如何实现:
二、实现步骤
1. 安装依赖
npm install @nestjs/config joi
2. 创建环境文件
项目根目录创建 .env
文件:
NODE_ENV=development
PORT=3000
DATABASE_URL=postgres://user:pass@localhost:5432/mydb
JWT_SECRET=mySuperSecretKey
3. 创建配置验证 Schema
新建 src/config/validation-schema.ts
:
import * as Joi from 'joi';
export const validationSchema = Joi.object({
NODE_ENV: Joi.string()
.valid('development', 'production', 'test')
.default('development'),
PORT: Joi.number().port().default(3000),
DATABASE_URL: Joi.string().uri().required(),
JWT_SECRET: Joi.string().min(16).required(),
})
.with('NODE_ENV', ['PORT'])
.messages({