什么是没有缓存/持久性的nodejs需要的最佳方法

时间:2018-06-10 14:09:49

标签: javascript node.js

我正在尝试为每个需要使用创建一个唯一的需求,文件1,2,300等等都需要一个名为test.js的文件。然后可以在一个文件中禁用它,但它的变量在其他文件中不受影响。

File1.js

const test = require("./test.js");
// NOTE enabled boolean in test is default = true
test.enabled = false; // or test.disable();
test.sayHello(); // will output nothing as enabled = false

File2.js

const test = require("./test.js");
test.sayHello(); // Should output hello but it as file1 set enabled to false it dosnt

test.js实现此功能的目的是什么?

我目前必须通过module.exports函数中的参数执行此操作,这不是理想的。例如,disable将测试函数的直接返回,然后是启用/禁用的第二个可选参数。哪个是...... ...

由于

d

1 个答案:

答案 0 :(得分:3)

即使您可以clear require缓存,我也会认为,对于您的特定情况,这是一种不好的做法。

相反,您的require调用应返回class,然后您将在每个文件上使用该类的新实例,并在需要时禁用/启用该实例。

<强> test.js

class Test {

    disable() {
        this.disable = true;
    }

    sayHello() {
        if(this.disable)
            return false;

        console.log('hello')
    }

}

module.exports = Test;

<强> index.js

const Test = require('./test.js');
const test = new Test();
test.disable();
test.sayHello(); // nothing is printed

const otherTest = new Test();
otherTest.sayHello(); // 'hello'