gpt4 book ai didi

node.js - 使用 fs.writeFile 时出现 ENOENT 错误

转载 作者:IT老高 更新时间:2023-10-28 23:07:34 26 4
gpt4 key购买 nike

尝试使用 fs.writeFile 将文件写入同级目录。当使用 Sitemap.xml 进入同一目录时,这工作正常,但不使用相对路径。 public 目录存在,无论 Sitemap.xml 是否存在都会报同样的错误。

相关目录结构:

/public
Sitemap.xml
app files
/create-sitemap
index.js - file containing code below
app.js

fs.write('../public/Sitemap.xml', data.toString(), function(err) {
if (err) throw err;
console.log("Wrote sitemap to XML");
});


Toms-MacBook-Pro:moviehunter tomchambers$ node create-sitemap/index.js

/Users/tomchambers/projects/project/create-sitemap/index.js:88
if (err) throw err;
^
Error: ENOENT, open '../public/Sitemap.xml'

最佳答案

当您在 Node 中使用相对路径时,它们与 Node 进程相关。因此,如果您从 /Users/tomchambers/projects/project/ 目录运行像 node create-sitemap/index.js 这样的脚本,它会查找 /Users/tomchambers/projects/public/Sitemap.xml 文件,不存在。

在您的情况下,您可以使用 __dirname 全局变量,它返回 as the docs say :

The name of the directory that the currently executing script resides in.

所以你的代码应该是这样的:

var path = require('path');

fs.write(path.join(__dirname, '../public/Sitemap.xml'), data.toString(), function(err) {
if (err) throw err;
console.log("Wrote sitemap to XML");
});

关于node.js - 使用 fs.writeFile 时出现 ENOENT 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28590737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com