0
点赞
收藏
分享

微信扫一扫

Node.js API -- 文件系统模块fs

笑望叔叔 2022-03-30 阅读 93
jsnode.js

Node.js API – 文件系统模块fs

1.认识fs

fs 模块是 Node.js 官方提供的,用来操作文件的模块,它提供了一系列的方法和属性,来满足用户对文件的操作需求

例如

  • fs.readFile(),读取文件中的内容
  • fs.writeFile(),用来向指定文件中写入内容

如果再JavaScript代码中,使用 fs 模块来操作文件,则需要先导入:

const fs = require('fs')
//这个 'fs' 是在安装node时就已经安装到电脑上的

2. 读取 指定文件中的内容

fs.readFile() 语法格式

fs.readFile(path [,options],callback)
//中括号中的是可选参数
  • 参数1:文件路径,字符串
  • 参数2:可选参数,表示以什么编码格式来读取文件 ,默认是 ‘utf8’
  • 参数3:必选参数,文件读取完后,通过回调函数拿到读取的结果,function(err,data)

fs的执行过程值得注意

判断是否读取成功

可以判断 err 的值是否为 null

    if (err) {
        console.log('文件读取失败:' + err.message)
    } else {
        console.log("文件读取成功,内容是:" + data)
    }

3.向指定文件中 写入 内容

fs.writeFile() 语法格式

fs.writeFile(path,data [,options],callback)
  • 参数1:需要指定一个 文件路径的字符串,表示文件的存放路径
  • 参数2:表示要写的内容
  • 参数3:写入内容的 格式,默认格式是 utf8
  • 参数4:写完之后的回调函数 function(err){}

示例

var fs = require('fs')
fs.writeFile('./aaa.txt', "hello Node.js", function (err) {
    console.log(err)
})

判断文件是否写入

可以判断 err 的值是否为 null

if (err) {
console.log('文件写入失败:' + err.message)
} else {
console.log("文件写入成功)
}

4.路径动态拼接问题(__dirname)

在使用 fs 模块操作文件是,如果提供的操作路径是以 ./…/ 开头的相对路径时,很容易出现路径动态拼接错误的问题

原因:代码在运行时,会以执行node命令时所处的目录,动态拼接处被操作文件的完整路径

**解决方案1:**直接提供一个 完整的 存放路径/读取路径(绝对路径中的/ 都换成//)(但移植性差,不利于维护)

解决方法2:使用 __dirname 表示当前文件所处的目录

//导入 fs 系统文件模块
var fs = require('fs')
fs.writeFile(__dirname + '/aaa.txt', "hello Node", function (err) {
    console.log(err)
})
举报

相关推荐

0 条评论