Korzystam z poniższego kodu, aby parsować dane json i przechowywać je wewnętrznie w moim module, na przykład gdy serwer jest (jak npm server.js) Używam funkcji parse
, który analizuje pliki json.
Na koniec te przeanalizowane jsony są przechowywane w obiekcie configObj
i chcę, aby podczas żądania użytkownika (za pośrednictwem ekspresu) uzyskać ten obiekt w module routera lub innych modułach.zapisz obiekt w module i uzyskaj dostęp do niego z różnych modułów
Jak to osiągnąć?
var configObj;
parse = function() {
return fs.readFileAsync(file, 'utf8')
.then(function (res) {
return JSON.parse(res)
}).then(function (jsonObj) {
configObj = jsonObj;
return jsonObj;
})
....
})
};
module.exports = {
parse: parse,
configObj: configObj
}
Funkcja parse
jest wywoływana tylko raz i chcę, aby uzyskać dostęp do configObj
wiele razy w różnych modułach.
Jeśli dobrze zrozumiałem Twój problem, możesz po prostu "wymagać" tego modułu w każdym pliku i węzeł wykona go tylko za pierwszym razem, a otrzymasz kopię z pamięci podręcznej po tym. –