在Node.JS中共享包配置的最佳方式

在Node.JS中共享包配置的最佳方式,node.js,Node.js,假设我导入一个node.js包并对其进行配置,例如winston: var log = require('winston'); log.add(log.transports.File, { filename: 'debug.log', level: 'debug'}); 如果我在另一个文件中需要相同的包,我将丢失配置并必须重新配置!一次配置包的最佳方式是什么?目前,我已将配置放入名为s_winston.js的文件中,该文件配置包,然后将其导出。在我的其他文件中,我执行以下操作: log = r

假设我导入一个node.js包并对其进行配置,例如winston:

var log = require('winston');
log.add(log.transports.File, { filename: 'debug.log', level: 'debug'});
如果我在另一个文件中需要相同的包,我将丢失配置并必须重新配置!一次配置包的最佳方式是什么?目前,我已将配置放入名为
s_winston.js
的文件中,该文件配置包,然后将其导出。在我的其他文件中,我执行以下操作:

log = require('../s_winston.js');

我应该为所有需要配置的包执行此操作吗?或者有更好的方法吗?

您可以将配置保存在
.json
文件中,并像往常一样需要它:

var config = require('path/to/config.json'); // or without extension: require('path/to/config');
此外,如果要配置的模块太多,并且希望将所有模块保存在一个位置,则可以将配置对象保存在js文件中:

module.exports = {
    Module1_config: {
        // Your configuration for module one
    },
    Module2_config: {
        // Your configuration for module two
    }
    // And so on
};
那么就:

var config = require('path/to/config);

module1.config(config.Module1_config);
module2.config(config.Module2_config);
/* ... */

事实上,我已经在为别的事情做这件事了。但我不确定如何将此技术应用于配置问题中所述的记录器?将配置保存在.json中是一个糟糕的想法。改用json5或yaml。只是说说。为什么使用json是一个如此糟糕的主意?它是本机支持的,只是数据。