我正在进行一个小型控制台项目,该项目在很大程度上依赖于最初传递的参数,并且我正在寻找一种在nodejs中处理配置对象的好方法。
目前,我已经使用以下示例完全实现了该项目,但我认为在使用'require'时依赖模块的缓存。
让我们假设一个名为options.js的模块。
目前,我已经使用以下示例完全实现了该项目,但我认为在使用'require'时依赖模块的缓存。
让我们假设一个名为options.js的模块。
'use strict';
var options = {
configName: '.jstail',
colorActive: (process.platform === 'win32') ? false : true, // deactivate color by default on windows platform
quiet: false,
debug: false,
config: null,
logFile: null,
setting: null
};
module.exports = options;
我的初始模块 init.js
#!/usr/bin/env node
'use strict';
var options = require('options'); // require above options module
// modify the options object based on args
接下来我有一个依赖于这些选项的日志记录器
例如,如果将quiet设置为true,则不应发生任何日志记录
logger.js
'use strict';
var options = require('options');
/**
* prints to console if not explicitly suppresed
* @param {String} text
*/
function log(text) {
if (!options.quiet) {
console.log('[LOG]: ' + text);
}
}
我的主要问题(我认为)是我在日志程序中调用选项模块时,依赖于Node.js模块的缓存机制。
所以,我的两个问题是:
我是否正确地理解了这只有通过Node.js对模块的缓存才能正常工作? 有没有更好的方法来处理动态全局配置?
我知道有一些关于配置文件的问题和教程,但这不是我要找的。