object [“#”]是否已定义和未定义?

时间:2019-07-11 05:03:47

标签: javascript node.js

我有一些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调用的回调中,并且可以正常工作,但该值在回调之外不会更新?

1 个答案:

答案 0 :(得分:0)

使用fs.readdirSync代替。 fs.readdirSync将提供一系列文件,这些文件将在运行其他代码之前进行处理