刚接触node和express,在开始做的时候就发现我想给系统做一些配置,好让在系统中全局可访问这些配置信息,但是没发现express有可供配置的地方。是框架本身没这个功能要自己写吗?
@alsotang 同意你的做法(写js的基本素质不污染全局变量嘛)。 但是我在开发中有三个环境:开发、测试、生产。 【问题来了】这三个环境我是根据渠道的传参判断的,在后面连接数据库的时候肯定也是分环境来连接(开发时肯定不能用生产数据库来做测试嘛),这时候通过读config.js就不知道目前是什么环境,需要连什么环境的数据库了。 【我的解决方案】还是得用2L的方法,在一开始就读取启动参数,判断环境,然后写到全局变量里。
代码中不要用全局变量,好处很多,比如减少 side effect,利于测试。不过在测试里面为了方便可以用一到两个全局变量(比如 GLOBAL.expect = require('chai').expect
),但是也不能滥用,否则测试代码的环境和生产代码差太多就没有测试意义了。
@chenfeifan 可以用 config 模块:https://github.com/lorenwest/node-config。这样需要用到配置时只需要引用 const config = require('config');
模块会自动根据 NODE_ENV
加载对应的配置文件