我正在尝试使用我的网站创建一个json文件(稍后将部署)。这是我正在使用的代码
saveFile = (i, data) => {
var filename = `${i}_may.json`;
var folder_list = ["desktop", "data", filename];
var dir = ".";
folder_list.forEach(function (x, i) {
dir = require("path").join(dir, `${x}`);
if (!fs.existsSync(dir)) {
fs.writeFileSync(dir, JSON.stringify(data));
}
});
};
但我一直收到这个错误
Error: ENOENT: no such file or directory, open 'desktop\data'
errno: -4058,
syscall: 'open',
code: 'ENOENT',
path: 'desktop\\data'
文件夹当然存在于我的桌面上。有没有办法让它在本地和部署后工作?
2条答案
按热度按时间pxq42qpu1#
我不明白为什么你要使用
forEach
,如果你最终只想执行一次写入。此外,在这里使用绝对路径是更好的选择。无论您的工作目录如何,脚本都会将文件保存在更正位置。
htzpubme2#
要将文件保存到
[current_dir]\desktop\data
,可以使用以下代码:请注意,声明路径的正确方法是使用
require("path").join('desktop','data',filename)
,这确保了路径的构造与运行平台无关。