dotenv + Joi 进行Node服务端相关配置
2019-03-13 本文已影响0人
R_X
一、dotenv
通过一个
.env
文件,将所有启动配置项写入process.env
中。
2、 .env
配置文件
PORT=4040
NODE_ENV=development
// 2、引入 dotenv
,并使用 相应配置
require('dotenv').config();
console.log(process.env.PORT); // 4040
console.log(process.env.NODE_ENV); // development
二、Joi
参数格式定义及校验
// 定义参数 schema
const envVarsSchema = Joi.object({
NODE_ENV: Joi.string()
.allow(['development', 'production', 'test', 'provision'])
.default('development'),
PORT: Joi.number()
.default(4040)
});
// 结合 `dotenv`,进行 配置参数校验
const { error, value: envVars } = Joi.validate(process.env, envVarsSchema);
if (error) {
throw new Error(`Config validation error: ${error.message}`);
}
const config = {
env: envVars.NODE_ENV,
port: envVars.PORT
};
module.exports = config;