node.js - Node.js fs.writeFile() 没有创建新文件?
问题描述
我需要为我正在尝试开发的系统创建许多 .json 文件。为此,我在需要的文件名上运行了一个 for 循环,然后使用fs.writeFileSync('filename.json', [data])
.
但是,稍后尝试打开它们时,当我尝试在项目文件夹中找到它们时,我无法在任何地方找到它们。
我试过用一个不太复杂的名字写,应该和我的脚本出现在同一个目录中,但这也没有结果。据我了解,即使我的文件名不是我预期的那样,我至少应该在某个地方得到一些东西,但是我最终什么都没有改变。
我当前的代码如下所示:
function addEmptyDeparture(date) {
fs.readFileSync(
__dirname + '/reservations/templates/wkend_dep_template.json',
(err, data) => {
if (err) throw err
fs.writeFileSync(
getDepartureFileName(date),
data
)
}
)
}
function getDepartureFileName(date){
return __dirname + '/reservations/' +
date.getFullYear() +
'/departing/' +
(date.getMonth() + 1).toString().padStart(2, "0") +
date.getDate().toString().padStart(2, "0") +
'.json'
}
data
从 fs.readFileSync() 返回并立即写入 fs.writeFileSync() 的 JSON 对象在哪里。我认为我不需要对它进行字符串化,因为它已经是一个 JSON 对象,但我可能错了。
我认为它根本不起作用的唯一原因(而不是根本没有出现在我的项目中)是,在代码的后面部分,我们有这个:
fs.readFileSync(
getDepartureFileName(date)
)
.toString()
这是因为没有该名称的文件而出现错误的地方。
还值得注意的是,它date
是一个有效的日期对象,因为我能够在小提琴中测试该部分。
我对 .json 的效果有什么误解fs.writeFile()
,或者这不是编写 .json 文件以在服务器上使用的最佳方式吗?
解决方案
我尝试使用带有 writeFileSync() 的演示创建类似的案例,使用 for 循环创建不同的文件并将 json 数据添加到这些文件中。就我而言,它有效。每次创建一个新的文件名。这是我的 GitHub:-
var fs = require('fs');
// Use readFileSync() method
// Store the result (return value) of this
// method in a variable named readMe
for(let i=0 ; i < 4 ; i++) {
var readMe = JSON.stringify({"data" : i});
fs.writeFileSync('writeMe' + i + '.json', readMe, "utf8");
}
// 存储内容并从 // readMe.txt 读取到文件 WriteMe.txt
让我知道这是否是您最后一直在尝试的。
推荐阅读
- curl - telnet 后关闭 curl 连接
- r - pdp plotPartial 无法更改 zlim
- c# - 如何在 xaml 和 wpf 中将菜单项与 observableCollection 绑定?
- c++ - C++ 使用参数返回指针 - 不同指针类型之间的比较缺少强制转换
- graphql - 将 graphql 发送到 Restsharp 自动化中的 Post 正文
- powershell - Powershell 构建损坏的路径
- c# - Blazor 获取对单击元素的引用
- firebase - Unity Firebase Crashlytics 未发送任何崩溃报告,在 logcat 上出现“无法检索设置”错误
- jfreechart - 如何在 JFreeChart 中显示价格下跌的交叉线和红色?
- javascript - 如何在单击按钮时删除特定数量的 DOM 元素?