在NodeJS应用程序中,我想动态地从外部文件加载配置数据(要生成的报告)。我可以使用require(' path / config')
静态加载它们但我确实有部分配置需要定期刷新,为了使它更复杂,这些配置文件包含一个必须可执行的功能。
其中一份报告如下:
const report = {
name : 'Report 3',
description : 'Very simple report.',
// Some properties
preprocessor : function() {
},
// Some more properties
};
module.exports = report;
使用require重新加载报表时,基本上不会重新加载。即使我改变某些东西,它也会保持不变。 (原因:require()使用缓存,理所当然。)
重新加载包含可执行函数的外部配置文件有什么好方法(可能是外部库)?
答案 0 :(得分:0)
我会使用fs。如果您完全控制配置文件(否则它很危险),您可以使用eval。
var fs = require('fs');
var file = fs.readFileSync(filename);
var module = {}
eval(file);
// You can access report in module.exports
如果您不想阻止您的申请(通常建议),您应该使用the async version并提供回调。
答案 1 :(得分:0)
为了解决缓存问题,我现在使用库require-without-cache。似乎可以完成这项工作。