gpt4 book ai didi

javascript - 使用appendFileSync时是否需要指定目录?

转载 作者:行者123 更新时间:2023-12-02 22:38:02 24 4
gpt4 key购买 nike

我正在阅读一些 Nodejs 文档并开始熟悉一些更基本的功能。具体看appendFileSync函数。

尝试追加文件时,是否需要指定目录?我不记得以前版本的 Node 中有此要求,但似乎在未指定目录时,会在根目录中创建一个新文件,而不是附加该文件。

我只是想附加一个基本的 txt 文件,它会创建一个新文件:

const fs = require('fs');
fs.appendFileSync('notes.txt', 'Changing the text with appendFileSync');

但是,在指定目录时,它会附加文件,这让我认为这是必需的:

const fs = require('fs');
fs.appendFileSync('./nodejs/notes-app/notes.txt', ' Colin, changed the
text with appendFileSync', function (err) {
if (err) throw err; console.log('Notes updated');
});

Node -v 12.13.0

NPM -v 6.12.0

最佳答案

与所有采用文件路径的 fs 操作一样,如果您未指定任何绝对路径,则您指定的路径将与当前工作目录合并。在 Nodejs 程序中,默认的当前工作目录(如果您不以编程方式更改它)取自启动 Node 程序的环境。

如果想直接控制路径而不考虑当前工作目录,则指定绝对路径。

这就是fs module documentation关于文件路径的说明:

String form paths are interpreted as UTF-8 character sequences identifying the absolute or relative filename. Relative paths will be resolved relative to the current working directory as specified by process.cwd().

注意:在某些情况下,开发人员希望访问与正在运行的模块的安装相关的文件系统。这通常是通过构建一个相对于 __dirname 的路径来完成的,该路径是当前模块的位置,如下所示。

path.join(__dirname, "somefile.txt");

当然,如果需要,您始终可以指定从 root 开始的完整路径名。

关于javascript - 使用appendFileSync时是否需要指定目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58682239/

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