簡體   English   中英

如何在NodeJS中動態加載外部配置文件

[英]How to load external configuration files in NodeJS dynamically

在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()使用緩存,並且確實使用緩存。)

重新加載包含可執行功能的外部配置文件的好方法(也許是外部庫)是什么?

我會用fs 如果您完全控制配置文件(否則很危險),則可以使用eval

var fs = require('fs');

var file = fs.readFileSync(filename);
var module = {}
eval(file);

// You can access report in module.exports

如果您不想阻止您的應用程序(通常建議),則應使用異步版本並提供回調。

為了解決緩存問題,我現在使用庫require-without-cache 似乎做好了工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM