Node.js项目中动态加载环境变量配置
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,知乎@大手印,或者关注我的公众号@全栈开发师,我会不定时分享一些全栈方向的开发内容,谢谢分享
本文使用 mdnice 排版
Node.js项目中动态加载环境变量配置相关推荐
- 一劳永逸部署项目:通过tomcat加载环境变量
一劳永逸部署项目:通过tomcat加载环境变量 转载自:https://blog.csdn.net/u010414666/article/details/46499953 一.说明 项目中经常会用到x ...
- NPM酷库:dotenv,从文件加载环境变量
NPM酷库,每天两分钟,了解一个流行NPM库.· 我们经常需要Node.js程序运行时加载不同的配置,比如开发环境和生产环境的数据数据库配置就可能不一样,使用 process.env.DB_HOST ...
- Dubbo(七)之自动加载环境变量
转载自 自动加载环境变量 在 Dubbo 中自动加载环境变量 从 2.7.3 版本开始,Dubbo 会自动从约定 key 中读取配置,并将配置以 Key-Value 的形式写入到URL中. 支持的 ...
- Node.js(一、Node.js基础、模块加载机制、包等)
Node.js(一.Node.js基础.模块加载机制.包等) 1.Node.js基础 1.1.Node是什么 1.2.Node环境安装失败解决方法 1.2.1.Node环境搭建 1.2.2.错误代码2 ...
- Node.js模块以及模块加载机制
2019独角兽企业重金招聘Python工程师标准>>> Node.js中的模块 在Node.js中,以模块为单位划分功能,通过一个完整的模块加载机制使得开发人员可以将应用程序划分为多 ...
- bpl文件java,在LoadLibrary中动态加载BPL失败
我想在Delphi 10 Seattle(Update 1)或Delphi 10.1 Berlin项目(Enterprise版本)中动态加载BPL模块 . 但LoadPackage函数失败并显示消息( ...
- Java中动态加载字节码的方法 (持续补充)
文章目录 Java中动态加载字节码的方法 1.利用 URLClassLoader 加载远程class文件 2.利用 ClassLoader#defineClass 直接加载字节码 2.1 类加载 - ...
- 在VC中动态加载ODBC的方法
在VC中动态加载ODBC的方法 在使用VC.VB.Delphi等高级语言编写数据库应用程序时,往往需要用户自己在控制面板中配置ODBC数据源.对于一般用户而言,配置ODBC数据源可能是一件比较 ...
- python requests 动态加载_Python获取网页中动态加载的数据
Python获取网页中动态加载的数据 0.XHR 是什么? XHR是 XMLHttpRequest 对象.既Ajax功能实现所依赖的对象,在JQuery中的Ajax是对 XHR的封装. 1.查看异步加 ...
最新文章
- c# 监视目录下的文件变化
- php 7.1安装教程
- 百练2811:熄灯问题
- 百题大冲关系列课程更新啦!这次是 Golang
- win8.1注册表-修改资源管理器的默认路径regedit
- linkedin爬虫_机器学习的学生和从业者的常见问题在LinkedIn上提问
- ES6之const命令
- 1.x到2.x的迁移:可观察与可观察:RxJava FAQ
- docker的简单操作和端口映射
- 【计算机网络复习 数据链路层】3.5.3 CSMA协议
- 推荐系统相关资源汇总
- 双系统ubuntu 删除后重装
- gson 不忽略空_仅在不为null或不为空的情况下,Gson序列化字段
- Android反编译与防止反编译
- android 扇形统计动画,Android自定义View——扇形统计图的实现代码
- 京东商品类目查询接口
- 数据分析引擎之Kylin学习笔记
- python离线录音转文字软件_如何将语音文件转换为文字?这5款软件轻松做到!...
- 多语言机器翻译 | (1)多语言翻译模型简介
- 数据结构银行排队系统c语言,数据结构银行排队系统实验报告