【问题标题】:How do I reload a config module when the contents change in Node.js?当 Node.js 中的内容发生变化时,如何重新加载配置模块?
【发布时间】:2017-07-24 07:48:26
【问题描述】:

我有几个 js 从 config.js 文件中读取了几个变量,而这些变量已经读取了本地环境变量。

我希望能够允许用户更新这些值(通过 HTTP POST)。如何使这些更改生效。更改 config.js 值或环境值不会生效,因为利用配置文件的文件已经加载了变量。

【问题讨论】:

    标签: javascript node.js configuration config


    【解决方案1】:

    您可以使用getterssetters 声明变量,以便在变量后面有一个函数实现。

    这是一个例子:

    'use strict';
    
    let value = null;
    
    module.exports = Object.create(Object.prototype, {
        value: {
            get: () => {
                return value;
            },
            set: (val) => {
                value = val;
            }
        }
    });
    

    【讨论】:

      【解决方案2】:

      你可以把它们放在一个模块中,比如app-config.js,它公开了get/set,这样你就可以从你的api方法中设置它们。如果它们只是某个模块内部某个地方的内部变量,那么就无法更改它们。

      您没有说您使用的是 ES5 还是 ES6,如果您需要一个示例说明如何执行此操作,请指定,我可以添加一个。

      这里有一些可以帮助你的链接

      http://www.benmvp.com/learning-es6-enhanced-object-literals/(方法定义简写部分)

      https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-06
        • 2020-10-13
        • 1970-01-01
        • 2022-01-24
        • 2017-06-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多