【发布时间】:2016-05-25 19:06:37
【问题描述】:
我正在导出以下对象,该对象从文件中初始化其数据
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 完成时调用回调的最佳方法吗?
-
我不会说这是“最好”的方式,但它是两种方式之一。
标签: javascript node.js filereader