gpt4 book ai didi

javascript - 为什么我的 readFileSync 函数没有执行?

转载 作者:太空宇宙 更新时间:2023-11-04 02:52:37 26 4
gpt4 key购买 nike

我正在尝试从 Node.js 中的文件中读取数据。这是我的代码:

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()时(而不是同步),该函数按预期执行和工作。我错过了什么?

最佳答案

readFileSync 不接受回调参数,因为它是同步的。您需要更改代码以将代码从回调内移至同步函数下方:

var markup = fs.readFileSync(path, {encoding: "utf8"});
const $ = cheerio.load(markup);
// ...

澄清一下,readFileSync 正在执行,只是您没有对结果执行任何操作,并且您的回调参数被忽略。

关于javascript - 为什么我的 readFileSync 函数没有执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45191229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com