node.js 我需要能够创建一个全新的 JSON 文件
Posted
技术标签:
【中文标题】node.js 我需要能够创建一个全新的 JSON 文件【英文标题】:node.js I need to be able to create a brand new JSON file 【发布时间】:2020-11-27 06:16:25 【问题描述】:我正在尝试创建一个新的 JSON 文件。每当我尝试使用 writeFile 函数时,它只是说没有打开这样的目录。 这是我试过的代码。
fs.writeFile('./UserData/' + msg.author + ".json", JSON.stringify(firstSplitContent: firstSplit,secondSplitContent: secondSplit,thirdSplitContent: thirdSplit,fourthSplitContent: fourthSplit,fifthSplitContent: fifthSplit,null,4), err =>
if(err) throw err;
console.log("File is created successfully.")
);
帮助将不胜感激。是的,我知道 Windows 不会使用那些特殊字符。我将其切换到 author.id 以删除。错误:ENOENT:没有这样的文件或目录,打开'./UserData/.json'
【问题讨论】:
很难阅读,但我是否正确阅读了您正在执行的代码JSON.stringify(..., null, 4)
?编辑:Nvm,这些是记录的可选参数
json.stringify 变长了。还没有找到一种更简单的方法将其传递给 write 函数。但是 fs 仍然令人困惑,因为我以前从未使用过它。
【参考方案1】:
fs.writeFile
不会创建任何不存在的目录。
我怀疑您路径中的目录 UserData
不存在,这就是您收到该错误的原因。
否则,您的路径可能是错误的。由于您使用的是相对路径,代码将在工作目录中查找UserData
文件夹,即。代码当前正在执行的位置。
如果路径正确,请先尝试创建:
if(!fs.existsSync('./UserData')
fs.mkdirSync('./UserData')
或者,您可以使用诸如 fs-extra
之类的包,它使您能够在路径中创建任何尚不存在的文件夹。
如果您想使用fs-extra
,这可能是与您最相关的功能:
https://github.com/jprichardson/node-fs-extra/blob/master/docs/outputJson.md
【讨论】:
很好的答案!再好不过了 文件夹存在。但是有没有类似的创建json文件的函数呢? 不,你做对了——创建对象,JSON.stringify,然后将其写入扩展名为 .json 的文件。我可以建议您单独创建对象,然后将对象传递给字符串化对象吗?您可以通过适当的缩进在多行中定义它,并且您的代码会更容易阅读 另外,如果该文件夹存在 - 您在正确的目录中吗?由于您使用了相对路径,代码将在代码当前正在执行的目录中查找UserData
文件夹。尝试使用绝对路径,或者从 UserData 所在的目录执行。
路径真的不是问题。这是一些旧代码在做“某事”,仍然不确定。无论如何,fs-extra 模块完全按照我的需要工作!谢谢【参考方案2】:
您应该遵循 Willianm 的回答,但我只注意到一件事:您正在尝试在文件名中使用 msg.author
,但这是一个对象(一个非常大的对象),您可能需要考虑将其更改为 @ 987654322@
【讨论】:
以上是关于node.js 我需要能够创建一个全新的 JSON 文件的主要内容,如果未能解决你的问题,请参考以下文章
Node.js JsonParser 自定义函数“无法读取未定义的属性”