我有一些json文件,想将它们另存为一个更大的对象中的对象,但是当我编写“ objects [“#”]“时,由于未定义,因此会出现错误,但是如果我在哪里写控制台...它是定义的吗?
我尝试了JSON.stringify和“ \”#\“”都不起作用
window.objects = {}
fs.readdir("default_objects", (err, files) => {
for (file of files) {
if (file == ".json") objects[" "] = JSON.parse(fs.readFileSync('default_objects/.json', 'utf8'))
else if (file.match(new RegExp('.*\.json')) && file == file.match(new RegExp('.*\.json'))[0]) objects[`${file.replace('.json','')}`] = JSON.parse(fs.readFileSync(`default_objects/${file}`, 'utf8'))
}
})
console.log(objects["#"])
//undefined even though in the default_objects folder there is a #.json file
应该可以,我认为没有理由。它说未定义,但它应该是json文件中的对象,但是它在Windows控制台中起作用?(当我键入object [“#”]并按Enter时,它会提供正确的输出)我正在使用电子。 更新:我尝试只在终端中记录结果,它也未定义吗?更新:我尝试在console.log中将其记录在fs.readdir调用的回调中,并且可以正常工作,但该值在回调之外不会更新?
答案 0 :(得分:0)
使用fs.readdirSync代替。 fs.readdirSync将提供一系列文件,这些文件将在运行其他代码之前进行处理