У меня есть модуль узла, и мне нужно проанализировать данные, и я хочу поделиться этими анализируемыми свойствами в разных модулях. Первый модуль, который вызывает это, несет ответственность за передачу данных и других модулей не нужно отправлять данные, так как я уже храню parsedData (в cacheObj), и может использовать только получить какое-либо свойство, проблема в том, когда я получаю доступ с 1 модуля и предоставляю данные, а затем пытаюсь получить доступ из diff-модуля, объект кеша не содержит данные, которые я «храню», любая идея, как это сделать правильно?Доступ к данным модуля из модуля diff
"use strict";
var Parser = require('myParser'),
_ = require('lodash');
function myParser(data) {
if (!(this instanceof myParser)) return new myParser(data);
if (!_.isEmpty(this.cacheObj)) {
this.parsedData = this.cacheObj;
} else {
this.parsedData = Parser.parse(data);
this.cacheObj = this.parsedData;
}
}
myParser.prototype = {
cacheObj: {},
getPropOne: function() {
return this.parsedData.propOne;
},
getPropTwo: function() {
return this.parsedData.propTwo;
}
};
module.exports = myParser;
Данные должны быть одинаковыми для моего приложения узла, поэтому я не нужно передать его каждый раз ... только для «INIT» ...
Правильно, но я хочу, чтобы избежать использования глобальных varible (ваш второй, например), есть способ сделать это? Это не хороший дизайн, чтобы использовать его .. –
Это не глобальная переменная, она существует только в этом файле –
да, но это глобальный AFAIK, вы думаете, что он лучше подходит для этого? –