我正嘗試從Node中的文件中讀取數據。這裏是我的代碼:爲什麼我的readFileSync函數不能執行?
const cheerio = require('cheerio');
var fs = require('fs');
var path = process.argv[2];
var glossArr = []
fs.readFileSync(path, {encoding: "utf8"}, function (err, markup){
console.log('function executing')
if (err) throw err;
const $ = cheerio.load(markup);
var glossar = $('body').children().last();
var index = $('body').children().last().prev();
glossar.children().children().children().each(function(i, elem) {
var obj = {};
var container = $(this).children();
var unter = container.children();
var begriff = unter.first().text();
var text = unter.last().text();
obj[begriff] = text;
obj['file'] = path;
glossArr.push(obj)
});
});
console.log('done reading file...')
var glossString = JSON.stringify(glossArr)
var result = 'export default ' + glossString
fs.writeFileSync('./data/data.js', result)
由於某種原因,readFileSync根本不執行。唯一被記錄的是'完成讀取文件...'
但是,當我將其更改爲readFile()
(而不是同步)時,該函數按預期執行並正常工作。我錯過了什麼?
意見:您似乎掌握了異步代碼和回調,這是在Node中編程的鼓勵方法。你可能只想堅持,而不是改變方法到同步 – CodingIntrigue
在這種特殊情況下,這是真的不需要,但我通常會 –
當然,感謝您捕捉! –