Node实战之不同环境下配置文件使用教程

前言

在使用 Node.js 编写一个完整的项目时,程序中往往需要用到一些可配置的变量,从而使得程序能在不同的环境中运行,而众所周知,在实际的项目会存在多个不同的环境,不同的环境下,一些配置是不相同的,如何在不同的环境下调用不同的配置,提高开发效率?下面话不多说了,来一起看看详细的介绍吧。

1. config-lite模块

首先引入一个配置模块config-lite,使用命令npm i config-lite --save安装。

通常我们会针对不同的环境,将配置写入不同的配置文件中,在Node项目下新建config目录,里面新建不同环境的配置文件,这里我以『开发』以及『生产』两个环境作为例子来讲解如何操作。

开发环境中,我们在config目录下新建两个文件:test.js和default.js,你可能会问,为啥没有生产机配置文件,因为生产机配置要在生产环境下再创建嘛。

在test.js配置文件中写入代码如下(PS. 这里以mysql的配置为例):

// test.js
module.exports = {
 mysql : {
 host: "localhost",
 user: "lupeng",
 password: "080910",
 database: "b1imd"
 }
};

default.js里写入一些默认的配置文件,例如session的配置等。

// default.js
module.exports = {
 mysql : {
 host: "10.20.141.220",
 user: "lupeng",
 password: "123456",
 database: "b1imd"
 },
 session: {
 secret: 'keyboard cat',
 resave: false,
 saveUninitialized: true,
 cookie: {
  maxAge: 1000*60*60
 }
 }
};

好了,配置文件写好了,如何使用呢?这里我们使用的 config-lite模块,这个模块是依据环境变量来选择不同的配置文件的,所以在使用之前我们需要修改package.json里的启动命令:

"scripts": {
 "start": "NODE_ENV=production supervisor --harmony -i views/ ./bin/www",
 "test": "NODE_ENV=test supervisor --harmony -i views/ ./bin/www"
 },

可以看到,上面有两条启动命令,一条是针对生产机,设置了NODE_ENV=production,一条是针对测试机,设置了NODE_ENV=test,当我们使用npm test启动项目的时候,config-lite会去抓取test.js配置,并且会与default.js里配置去合并,如果有相同的对象,会覆盖default.js里的配置。如上例子都有mysql的对象,那么这里会以test.js里的对象为准。

好了,下面来介绍一下如何在项目中使用config-lite模块,在app.js里代码如下:

// 省略...
var config = require('config-lite')(__dirname);
// 省略...
app.use(session(config.session));
console.log("mysql服务器:" + config.mysql.host); // display mysql-config
// 省略...

引入之后,可以直接使用配置文件中的配置对象。

2. 生产环境

那么在生产环境中,如何使用呢?上面已经介绍了config-lite基本原理以及用法,在生产环境的时候,我们只需要在生产机环境中config目录下新建production.js文件,然后使用启动命令npm start即可。

为了避免测试环境以及生产坏境配置文件混淆,可以通过.gitignore文件忽略配置文件,添加如下:

# config
config/*
!config/default.*

这样,git会忽略除了default.js之外的配置文件,在本地开发环境中,可以创建多个配置文件测试使用,只需设置对应的环境变量即可。需要注意的是环境变量名需同配置文件名一样。

3. windows环境

也许你是一个多系统环境开发者,可能同时在Linux和windows环境下开发,由于windows下设置环境的变量的语法不太一样,所以可以在package.json启动命令中再加上两句,如下:

"scripts": {
 "start": "NODE_ENV=production supervisor --harmony -i views/ ./bin/www",
 "test": "NODE_ENV=test supervisor --harmony -i views/ ./bin/www",
 "winStart": "SET NODE_ENV=production&&supervisor --harmony -i views/ ./bin/www",
 "winTest": "SET NODE_ENV=test&&supervisor --harmony -i views/ ./bin/www"
 }

这样,如果部署在windows环境下,在config目录下新建production.js配置文件,启动命令npm winStart;如果部署在Linux或类Unix环境下,同样是创建production.js,启动命令npm start即可。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • Node实战之不同环境下配置文件使用教程

    前言 在使用 Node.js 编写一个完整的项目时,程序中往往需要用到一些可配置的变量,从而使得程序能在不同的环境中运行,而众所周知,在实际的项目会存在多个不同的环境,不同的环境下,一些配置是不相同的,如何在不同的环境下调用不同的配置,提高开发效率?下面话不多说了,来一起看看详细的介绍吧. 1. config-lite模块 首先引入一个配置模块config-lite,使用命令npm i config-lite --save安装. 通常我们会针对不同的环境,将配置写入不同的配置文件中,在Node项

  • docker在Linux环境下的安装教程

    1.安装环境 Docker支持以下的CentOS版本 CentOS 6.5 (64-bit) 或更高的版本 Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker [root@tenghao510 ~]# uname -r 3.10.0-957.21.3.el7.x86_64 3.用 yum 安装 Docker:  yum -y install docker 最后出现Complete即安装成功 4.启动Docker

  • Linux环境下安装nginx教程

    目录 1.安装所需环境 //安装gcc yum install gcc-c++ //安装PCRE pcre-devel yum install -y pcre pcre-devel //安装zlib yum install -y zlib zlib-devel //安装Open SSL yum install -y openssl openssl-devel 2.创建nginx目录并下载安装包 //进入usr/local目录 cd /usr/local //创建nginx目录 mkdir ngi

  • Windows系统下Node.js安装以及环境配置的完美教程

    目录 一.安装环境 二.安装Node.js步骤 三.前期准备 1.Node.js简介 2.下载Node.js 四.开始安装 五.环境配置 六.测试 本人安装路径实况 总结 一.安装环境 1.本机系统:Windows 10 Pro(64位) (楼主win7,完美通过) 2.Node.js:v6.9.2LTS(64位) (楼主版本2018-11-01下载的最新版本) 二.安装Node.js步骤 1.下载对应你系统的Node.js版本:https://nodejs.org/en/download/ 2

  • Linux centos7环境下MySQL安装教程

    Linux centos7环境下安装MySQL步骤的详细介绍 安装MySQL mysql 有两个跟windows不同的地方 1).my.ini 保存到/etc/my.ini 2).用户权限,单独用户执行 一.查找以前是否安装有mysql,使用下面命令: rpm –qa | grep -i mysql 如果显示有如下包则说明已安装mysql mysql-4.1.12-3.RHEL4.1 mysqlclient10-3.23.58-4.RHEL4.1 二.下载mysql解压包 mysql-5.7.1

  • Linux centos7环境下Nginx安装教程

    Linux centos7环境下安装Nginx的步骤详解 1. 首先到Nginx官网下载Nginx安装包 下载好后会见到类似下面的一份文件 创建nginx-src目录并且去到nginx-src目录里运行如下命令即可: mkdir nginx-src && cd nginx-src 当然也可以在Linux底下运行以下命令进行下载Nginx安装包 wget http://nginx.org/download/nginx-1.5.9.tar.gz 2.解压nginx-1.5.9.tar.gz文件

  • Linux centos7环境下jdk安装教程

    详解Linux centos7环境下安装JDK的步骤,供大家参考,具体内容如下 测试root用户下JAVA版本 输入命令:java –version 1.先到Oracle官网里下载好jdk,网址如下: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.把刚下载好的jdk上传到Linux系统里,这里我借助了一个工具WinSCP 3.然后把下载好的jdk包上传到software文

  • Linux centos7环境下tomcat安装教程

    Linux centos7环境下安装tomcat的步骤详解 1. 首先到Apache官网下载tomcat安装包 http://tomcat.apache.org/download-80.cgi 如果你们的jdk版本是1.7或者1.7以下的就下载tomcat6或是tomcat7就OK了 博主我的jdk版本是1.8, 所以下载的是tomcat8 2. 把刚下载好的tomcat上传到Linux虚拟机下 3.去到tomcat所在的目录下解压此压缩包如下 输入命令: cd/software (进到 /so

  • 网管实战多VLAN环境下DHCP服务的实现

    在对网络进行升级改造时,必须考虑到各个方面,而如何在多VLAN环境中实现DHCP服务就是其中之一. 原理 使用DHCP方式获取IP地址需要利用广播数据包,按正常情况,DHCP服务只能在同一广播域内实现.而VLAN的建立就是为了隔离广播包,为什么在三层交换机上可以实现DHCP的跨网段呢?这需要我们将DHCP请求的广播数据包转化为单播请求,才会通过三层路由把请求转发到DHCP服务器所在的VLAN,进而实现DHCP的跨VLAN服务. 实现方法 为了实现跨VLAN的DHCP服务,需要从两方面入手,一方面

  • Windows 10上JDK环境安装配置图文教程

    Windows10 上的JDK安装配置 1.前往 JDK 官网下载对应 jdk 版本安装包: 下载地址 本文以 jdk-8u161-windows-x64.exe 为例: 2.双击执行安装包程序: 3.选择需要安装的可选功能: 4.开始安装: 5.中间弹窗需要安装 JRE: 6.开始安装 JRE: 7.程序安装完成. 8.环境变量配置: 在"我的电脑"-"属性"-"高级系统设置"-"环境变量"中增加环境变量: 增加如下图所示的

随机推荐