Я экспортировать следующий объект, который инициализирует свои данные из файлаУзел экспорт объекта с данными из файла
function wordsBox(){
this.words= {};
}
var w = new wordsBox();
fs.readFile('words.txt', function (err, data) {
w.words = JSON.parse(data.toString());
});
module.exports = w;
Однако, когда я пытаюсь получить доступ к данным из другого файла, его не читает.
var wordsBox = require('../db/word.reader');
console.log(wordsBox.words);
Следующее выдает пустой объект. Поэтому, все равно, чтобы экспортировать объект после того, как fs закончил чтение данных.
в «другом» файле, вы не подождали достаточно долго, чтобы readFile в модуле завершился. Поскольку вы не дали себе обещания или обратного вызова для работы, вам нужно будет с помощью setTimeout (или изменить модуль для обратного вызова) –
- лучший способ вызвать обратный вызов, когда readFile будет завершен? –
Я бы не сказал, что это «лучший» способ, но это один из двух способов. –