nodejs экспортирует объект в определенную программу - PullRequest
0 голосов
/ 19 марта 2019

Я пишу программу nodejs, в которую я хочу экспортировать объект для определенной программы, при этом удостоверившись, что другие программы не будут иметь доступа к этому объекту.

Существует способ прямого экспортак конкретной программе в nodejs?

Пример моей проблемы:

Это файл с именем a.js:

let firstVar = 100;
let secondVar = 200;

module.exports = {firstVar};

Прямо сейчас, каждый файл js, который будетИспользование require ('a.js') будет иметь доступ к firstVar.Я хочу создать файл с именем b.js, который также может иметь доступ к secondVar.Как я могу экспортировать secondVar только в b.js, убедившись, что у каждого другого файла js нет доступа к нему.

Я хочу сделать это, потому что я хочу протестировать мой проект, создав тестфайл, который, очевидно, нуждается в определенной переменной, которую я намеренно хочу экспортировать в остальные файлы js.

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

Как уже упоминал кто-то, это довольно странная вещь, которую хочется делать, поэтому это то, что вы, вероятно, должны делать только в очень ограниченных сценариях.Тем не менее, это может быть достигнуто путем просмотра имени файла требуемого модуля:

if (module.parent && module.parent.filename.match(/some_file\.js$/)) {
    module.exports.yourSelectivelyExportedVariable = 'some value';
}

module.parent равен нулю, если файл запускается как скрипт, и будет установлен в объект, описывающиймодуль, из которого этот модуль требовался в противном случае.См. здесь для получения дополнительной информации.

0 голосов
/ 19 марта 2019

(function () {let firstVar = 100; // будет приватным для a.js} ()); let secondVar = 200; module.exports = {firstVar};

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...