fs,简称为 ** 文件系统**,是Node中最基本和最有用的模块之一. 在本文中,我们将讨论一些最重要的和最有用的方法来操纵文件系统。
开始的
当然,您可以这样做(https://nodejs.org/en/)。幸运的是,对于我们来说,fs是配备Node的盒子外
模块之一,所以它已经可供您使用。
1const fs = require('fs');
同步与非同步
每个 fs 方法都有一个同步和非同步版本,同步表格的名称仅用 Sync 结束,所以一个同步的 fs.writeFile()
变成了 `fs.writeFileSync()'。
基本操作
基本的 CRUD 操作(创建、阅读、更新和删除)非常简单,只有 3 个主要功能。
fs.writeFileSync()
fs.readFileSync()
fs.unlinkSync()
( )
fs.writeFileSync()
只需要两个参数;通往新文件位置的路径,该路径必须以新文件的名称和您想要存储的数据结束。
1[label gator.js]
2const gators = [{
3 type: 'cayman'
4}];
5
6fs.writeFileSync('./swamp/cayman.json', JSON.stringify(gators));
结果:
1[label swamp/cayman.json]
2[{"type":"cayman"}]
请记住,fs.writeFileSync()正在完全重写 cayman.json 中的内容,所以如果您将 type: 'cayman' 更改为
type: 'croc' 并重新运行文件, cayman 将被更换。
(
默认情况下,所有数据都作为一个缓存
返回,一个特殊的编码的数字字符串,以修复仅仅通过utf8
作为第二个参数。
在这里,我们将返回一个空的数组,如果 cayman.json
是空的,并返回数据,如果它存在。
1[label gator.js]
2const gators = [{
3 type: 'cayman'
4}];
5
6const getData = () => {
7 let data = fs.readFileSync('./swamp/cayman.json', 'utf8');
8
9 if (!data) return [];
10 else {
11 const file = JSON.parse(data);
12 return file;
13 }
14}
15
16const data = getData();
无人机( )
解链接是三者中最简单的,只需要通往您想要删除的文件或象征链接的路径。
1fs.unlinkSync('./swamp/cayman.json');
文件夹上的 CRUD 操作
上述三种方法有自己的有用的对象来操纵目录本身。
fs.mkdirSync()
fs.rmdirSync()
fs.readdirSync()
由于fs.mkdirSync()
和fs.readdirSync()
的使用与他们的文件对象相同,我们将用来处理代替fs.rmdirSync()
的 gotchas。
( )
使用 fs.rmdirSync()
删除文件夹的主要问题是它只会在空目录上工作,如果你试图使用它来删除 ./swamp
它会返回:
1Error: ENOTEMPTY: directory not empty, rmdir './swamp'
遗憾的是,Node对于这个问题没有本地解决方案,出于某种原因,所以我们必须去其他地方寻找。
我发现的最简单的解决方案是一个名为 rimraf的npm包,所以让我们快速安装。
1$ npm i rimraf
语法非常相似,除非你代替fs,叫‘rimraf.sync()’(或简单的‘rimraf()’为非同步版本),然后按照你的预期,通过你的路径。
1const rimraf = require('rimraf');
2
3rimraf.sync('./swamp');
结论
仅凭借这些几个功能,您将能够处理许多常见的使用案例,以操纵文件及其数据。
任何对新技术的介绍都将伴随着强制性的参考 文档(这确实是探索某事物的最佳方式之一)。