基于nodejs 的应用开发中基于环境变量的配置管理是很场景的,env-schema 是一个集成了json schema 以及dotenv 工具的一个npm包
可以增强基于dotenv 的配置管理(缺少check)
参考试用
- app.js
const envSchema = require('env-schema')
const schema = {
type: 'object',
required: [ 'PORT' ],
properties: {
PORT: {
type: 'number',
default: 3000
},
NAME: {
type: 'string',
default: 'John'
}
}
}
const config = envSchema({
schema: schema,
dotenv: true // load .env if it is there, default: false
})
console.log(config)
- .env 配置
PORT=33333
NAME=dalong
- 运行
如果数据类型是正确的,会正常输出,如果有问题,输出就会抛出一个exception
说明
环境变量的check 在nodejs 应用中比较常见,包含了类型转换,类型检查,默认值,env-schema 是一个可选的工具,类似的工具包实际上很多,cube.js 框架中自己开发了独立的工具包
参考资料
https://www.npmjs.com/package/env-schema
https://github.com/fastify/env-schema