在实际项目中,会有很多不同的环境。在不同的环境中,一些配置是不同的。如何在不同的环境调用不同的配置来提高开发效率?1、config-lite模块首先引入一个配置模块config-lite,使用命令npmiconfig-lite--save安装。通常我们会针对不同的环境将配置写入不同的配置文件,在Node项目下新建一个config目录,在里面新建不同环境的配置文件。这里我以“开发”和“生产”这两个环境为例说明具体怎么做。在开发环境中,我们在config目录下新建两个文件:test.js和default.js。你可能会问为什么没有生产机配置文件,因为生产机配置需要在生产环境中创建。在test.js配置文件中编写代码如下(PS,这里以配置mysql为例)://test.jsmodule.exports={mysql:{host:"localhost",user:"lupeng",密码:“080910”,数据库:“b1imd”}};一些默认配置文件写在default.js中,比如session配置等。//default.jsmodule.exports={mysql:{host:"10.20.141.220",user:"lupeng",password:"123456",database:"b1imd"},session:{secret:'keyboardcat',resave:false,saveUninitialized:true,cookie:{maxAge:1000*60*60}}};好了,配置文件写好了,怎么用呢?这里我们使用了config-lite模块,它会根据环境变量来选择不同的配置文件,所以在使用前需要修改package.json中的启动命令:"scripts":{"start":"NODE_ENV=productionsupervisor--harmony-iviews/./bin/www","test":"NODE_ENV=testsupervisor--harmony-iviews/./bin/www"},可以看到上面有两条启动命令,一个是针对生产机,设置NODE_ENV=production,一种是针对测试机,设置NODE_ENV=test,当我们使用npmtest启动项目时,config-lite会抓取test.js配置,并将with配置在default.js中合并。如果存在相同的对象,default.js中的配置将被覆盖。以上例子都有mysql对象,这里以test.js中的对象为准。好了,下面介绍一下如何在项目中使用config-lite模块,app.js中的代码如下://省略...varconfig=require('config-lite')(__dirname);//省略...app.use(session(config.session));console.log("mysqlserver:"+config.mysql.host);//显示mysql-config//省略...导入后可以直接使用配置文件中的Configuration对象。2.生产环境那么如何在生产环境中使用呢?上面已经介绍了config-lite的基本原理和使用方法。在生产环境中,我们只需要在生产机环境的config目录下新建一个production.js文件,然后使用启动命令npmstart即可。为了避免混淆测试环境和生产环境的配置文件,可以忽略通过.在本地开发环境中,可以创建多个测试用的配置文件,设置相应的环境变量即可。需要注意的是,环境变量名必须与配置文件名相同。3.Windows环境可能你是一个多系统环境的开发者,你可能同时在Linux和Windows环境下开发。由于Windows设置环境变量的语法不同,可以在package.json启动命令中多加两条。语句如下:"scripts":{"start":"NODE_ENV=productionsupervisor--harmony-iviews/./bin/www","test":"NODE_ENV=testsupervisor--harmony-iviews/./bin/www","winStart":"SETNODE_ENV=production&&supervisor--harmony-iviews/./bin/www","winTest":"SETNODE_ENV=test&&supervisor--harmony-iviews/./bin/www"}这样,如果部署在windows环境下,在config目录下新建production.js配置文件,启动命令npmwinStart;如果部署在Linux或类Unix环境中,也创建production.js,并启动命令npmstart。更多内容请访问:LP'sBlog
