Node.js的fs模块提供了与文件系统交互的有用功能
fs 模块提供了许多非常有用的功能来访问文件系统并与之互动。
没有必要安装它。作为Node核心的一部分,它可以通过要求它来使用。
一旦你这样做,你就可以访问它的所有方法,其中包括。
fs.access(): 检查文件是否存在,并且Node可以通过其权限访问它fs.appendFile():将数据追加到文件中。如果文件不存在,它就会被创建fs.chmod(): 改变一个由传递的文件名指定的文件的权限。相关的。fs.lchmod(),fs.fchmod()fs.chown()更改由通过的文件名指定的文件的所有者和组。相关的。fs.fchown(),fs.lchown()fs.close():关闭一个文件描述符fs.copyFile():复制一个文件fs.createReadStream(): 创建一个可读文件流fs.createWriteStream()创建一个可写的文件流fs.link()创建一个新的硬链接到一个文件fs.mkdir()创建一个新的文件夹fs.mkdtemp(): 创建一个临时目录fs.open(): 设置文件模式fs.readdir(): 读取一个目录的内容fs.readFile()读取一个文件的内容。相关的。fs.read()fs.readlink(): 读取一个符号链接的值fs.realpath(): 将相对文件路径指针(.,..)解析为全路径fs.rename(): 重命名一个文件或文件夹fs.rmdir(): 删除一个文件夹fs.stat(): 返回由传递的文件名识别的文件的状态。相关的。fs.fstat(),fs.lstat()fs.symlink()创建一个新的符号链接到一个文件fs.truncate()截断文件:将通过文件名识别的文件截断到指定长度。相关的。fs.ftruncate()fs.unlink():删除一个文件或一个符号链接fs.unwatchFile(): 停止监视一个文件的变化fs.utimes():改变由通过的文件名识别的文件的时间戳。相关的。fs.futimes()fs.watchFile(): 开始监视一个文件的变化。相关的。fs.watch()fs.writeFile():将数据写入一个文件。相关的。fs.write()
fs 模块的一个奇特之处在于,所有的方法在默认情况下都是异步的,但它们也可以通过附加Sync ,同步工作。
比如说。
fs.rename()fs.renameSync()fs.write()fs.writeSync()
这在你的应用流程中产生了巨大的差异。
例如,让我们检查一下fs.rename() 方法。异步API是与回调一起使用的。
const fs = require('fs')
fs.rename('before.json', 'after.json', (err) => {
if (err) {
return console.error(err)
}
//done
})
同步API可以像这样使用,用一个try/catch块来处理错误。
const fs = require('fs')
try {
fs.renameSync('before.json', 'after.json')
//done
} catch (err) {
console.error(err)
}
这里的关键区别是,在第二个例子中,你的脚本的执行将被阻塞,直到文件操作成功。