NODE_MODULES:项目中动态加载环境变量配置

NODE_MODULES:项目中动态加载环境变量配置

开始

在平时的 Node.js 项目开发中,我们需要在项目中添加各种各样的配置:服务端口、服务地址、图片上传、数据库、Redis 等等。

通常情况下我们会在项目的根目录中添加config.js或者config.json配置文件,然后在需要使用到的时候,在项目中require配置文件。

module.exports = {
  SERVER: 'https://www.example.com',
  PORT: 7890,
  REDIS: '127.0.0.1:6379',
  MONGODB: 'mongodb://127.0.0.1:27017/example'
} 

config.js

通过使用配置文件在大部分情况下比较简单明了,但是如果有多个配置环境的时候就有一些棘手,有的同学会说可以通过判断NODE_ENV是否为production来判断是否使用生产环境配置,那样的话就需要在项目运行的时候在命令行中添加

NODE_ENV=production node index.js

现在我们可以通过使用dotenv的第三方包,在项目的根目录中添加.env的配置文件,就可以在项目中使用process.env的环境变量配置

使用

基本使用

dotenv就是一个可以通过加载配置文件,将配置动态添加到 Node.js 的执行环境变量中。

首先我们在项目中添加.env配置文件

NODE_ENV=production
SERVER=https://www.example.com
PORT=7890
REDIS=127.0.0.1:6379
MONGODB=mongodb://127.0.0.1:27017

.env

然后在我们的项目入口文件中使用dotenv加载配置

// index.js
const config = require('dotenv').config();
const http = require('http');

const port = process.env.PORT || '1337';
const server = http.createServer((rea, res) => {  res.status(200).send('Server is Running') }) server.listen(port); 

或者我们也可以在命令行启动的时候添加

node -r dotenv/config index.js

添加之后我们就可以在整个项目中使用 process.env来使用环境变量的配置了。

高级使用

解析状态

我们可以在加载配置文件之后添加配置文件的加载是否成功的判断,如果加载的过程中出现错误,解析之后 config.error包含了加载的错误信息。config.parsed包含了解析成功的配置参数,在脚本操作中使用 config.parsed是比较方便的。

const config = dotenv.config()

if (config.error) {
  throw config.error
}
 console.log(config.parsed) 

更改配置文件

如果我们不想使用.env配置文件,想使用.config或者类似于vue-cli的环境变量文件配置.env.production,我们可以在加载配置文件的时候将配置文件名称更改即可

// index.js
const config = require('dotenv').config({ path: '/custom/path/to/.env.production' })
const http = require('http');

const port = process.env.PORT || '1337';
const server = http.createServer((rea, res) => {  res.status(200).send('Server is Running') }) server.listen(port); 

更多的内容可以查看模块的地址

参考

  • Github 地址:motdotla/dotenv

  • NPM地址:dotenv

更多

更多的内容请关注GitHub,知乎@大手印,或者关注我的公众号@全栈开发师,我会不定时分享一些全栈方向的开发内容,谢谢分享

NODE_MODULES:项目中动态加载环境变量配置_第1张图片

本文使用 mdnice 排版

你可能感兴趣的:(javascript,node.js,mongodb,redis)