Каков наилучший способ сделать nodejs без кэширования / сохранения

1

Я пытаюсь создать требование, которое уникально для каждого из них требует использования, файл 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 будет проверять прямой возврат функции, а затем второй необязательный аргумент для включения/выключения. Что такое meh...

Спасибо

D

Теги:

1 ответ

3

Несмотря на то, что вы можете очистить 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'
  • 1
    Забыл о возврате самого класса / функции, а не о его создании ... дох ... мелочи, да ... Спасибо за ответ :)
  • 0
    Действительно, эти мелочи :), рад помочь!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню