2016-10-15 2 views
1

У меня есть файл worker.js, который периодически обновляет значения нескольких переменных. В других файлах моего сервера Node.js я хочу получить доступ к этим vars.Рекомендуемый способ экспорта переменных в Node.js

Я знаю, как их экспортировать, но, похоже, они экспортируются по значению - т. Е. Имеют значение, которое они имели в момент, когда я выпустил функцию require.

Конечно, мне интересен доступ к их последнему значению. Каков рекомендуемый способ сделать это? Функция «getter» или еще?

ответ

2

Возможный способ экспортировать их по ссылке, чтобы на самом деле манипулировать module.exports объект - например, так:

//worker.js 
module.exports.exportedVar = 1; 
var byValueVar = 2; 

setInterval(foo, 2000); 

function foo() { 
    module.exports.exportedVar = 6; 
    x = 8; 
} 

//otherfile.js 
var worker = require('./worker'); 
console.log(worker.exportedVar); //1 
console.log(worker.byValueVar) //2 

setInterval(foo, 3000); 

function foo() { 
    console.log(worker.exportedVar); //6 
    console.log(worker.byValueVar); //2 
} 
+0

Насколько я понимаю, это не способ экспортировать их * ссылочной *, но мы повторно собираются «реэкспортировать» их каждый раз, когда их значение изменилось. Или, другими словами, у меня нет локальной копии var, но я непосредственно работаю над «экспортированным». Это хорошая/рекомендуемая оценка? – Mark

+0

Ну, если эти вары предназначены только для целей экспорта, то это определенно хорошо. если это для внутреннего использования также, возможно, функция getter является более правильным подходом –

Смежные вопросы