javascript - 使用 appendFileSync 时是否需要指定目录?
问题描述
我正在浏览一些 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');
});
节点-v 12.13.0
NPM -v 6.12.0
解决方案
与fs
采用文件路径的所有操作一样,如果您没有指定任何绝对路径,那么您指定的路径将与当前工作目录组合。在 nodejs 程序中,默认的当前工作目录(如果您不以编程方式更改它)取自您启动 node 程序的环境。
如果想直接控制路径而不考虑当前工作目录,则指定绝对路径。
这是fs
模块文档中关于文件路径的内容:
字符串形式的路径被解释为标识绝对或相对文件名的 UTF-8 字符序列。相对路径将相对于 process.cwd() 指定的当前工作目录进行解析。
注意:在某些情况下,开发人员希望访问与正在运行的模块的安装相关的文件系统。这通常是通过构建一个相对于__dirname
当前模块位置的路径来完成的,就像这样。
path.join(__dirname, "somefile.txt");
当然,如果需要,您始终可以指定从 root 开始的完整路径名。
推荐阅读
- javascript - 打字稿错误 JSX 元素类型“视图”不是 JSX 元素的构造函数
- tcl - 处理未完成时从循环中获取值
- javascript - How to await user input with javascripts async/await syntax?
- python - Python: How to print all numbers except the multiples of 3
- javascript - 来自带有 FlatList 的 react-native-elements 的 SearchBar 只允许我一个一个地输入字符
- android - 添加搜索过滤器回收站视图后给出错误的位置
- javascript - React Ant Design 表格过滤不起作用
- python - 如何解决 Windows 上的 pygame 安装错误?
- python - 从 pandas 的行中删除特定模式
- angular - 如何让 Angular 9 在 Internet Explorer 上运行?