🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # **[dotenv](https://github.com/motdotla/dotenv)** * [ ] 文档:https://github.com/motdotla/dotenv ### env 环境变量配置敏感信息 ### 一、.env的作用 `.env`文件是用来自定义配置的一个简单方法,可以将一些不能在代码中存储的敏感/账号数据从代码中剥离出来,作为环境变量存储在环境中。 ***** ### 二、.env的使用方法 .env 文件通常不包含在版本控制内,它可能包含敏感的 API Key 或者 密码。所有需要环境变量定义(不敏感的定义)的项目都需要创建一个.env.example 文件,这个环境变量包含他们自己定义的环境变量或者联合开发包含的环境变量。项目合作开发者可以独立的复制 .env.example并且重命名为.env,并且修改为正确的本地环境配置,存储密码key或者提供他们必要的值。 在这个使用方法中 .env 文件应该添加到.gitignore文件中并且永远不会被项目的合作者签入/签出。这个方法确保里边没有敏感的 API Key 或者 密码在版本控制中出现从而减少了安全风险,并且开发环境中的配置永远不会告知合作开发者。 * [ ] 在根目录下添加.env文件 ``` DB_HOST=127.0.0.1 DB_NAME=timeseriesmonitor" DB_PORT=5432 DB_USER=tsm DB_UNSECURE=true ``` * [ ] 引入`dotenv` `npm install dotenv` ``` let dotenv = require('dotenv'); dotenv.config('./env'); console.log(process.env); ``` 打印log如下: ``` { ... DB_HOST: '127.0.0.1', DB_NAME: 'timeseriesmonitor', DB_PORT: '5432', DB_UNSECURE: 'true', DB_USER: 'tsm', ... } ``` ***** #### 封装一个DB配置类 ![](https://box.kancloud.cn/fb079ccc800da25451ac9f2148027946_238x260.png) ![](https://box.kancloud.cn/360511dcd675bede50673f0ae38f7129_269x180.png) ![](https://box.kancloud.cn/1719c8f9e836ce897ad8e57df74ad38b_613x283.png) ![](https://box.kancloud.cn/7d70997c59e8cd384d84709a5d4c3d94_680x274.png) * [ ] 代码: 1. 根目录新建一个 .env 文件 ``` DB_HOST=127.0.0.1 DB_NAME=zhihu DB_PORT=27017 DB_USER=drw DB_PWD=123456 ``` 2. 配置 config / database.js ``` require('dotenv').config('./env') const { DB_HOST, DB_NAME, DB_PORT, DB_USER, DB_PWD } = process.env module.exports = { host: DB_HOST, database: DB_NAME, username: DB_USER, password: DB_PWD, port: DB_PORT } ``` 3. 输出配置项 index.js ``` const { host, database, username, password, port } = require('./database') module.exports = { ConnectStr: `mongodb://${username}:${password}@${host}:${port}/${database}` } ```