fs(文件系统File System)

在Node中,与文件系统的交互是非常重要的,服务器的本质就将本地的文件发送给远程的客户端。文件系统简单来说就是通过node来操作系统中的文件。

Node通过fs模块来和文件系统进行交互。

该模块提供了一些标准文件访问API来打开、读取、写入文件,以及与其交互。

要使用fs模块,首先需要对其进行加载,fs模块是核心模块,直接引入不需要下载:const fs = require("fs");

同步和异步调用

fs模块中所有的操作都有两种形式可供选择:同步和异步。

同步文件系统会阻塞程序的执行,也就是除非操作完毕,否则不会向下执行代码。

异步文件系统不会阻塞程序的执行,而是在操作完成时,通过回调函数将结果返回。

FS核心模块(fileSystem)

在Nodejs中有一个文件系统,对计算机中的文件进行增删改查操作。

在nodejs中我们提供了一个模块,叫做fs模块系统,专门用于操作文件系统。

在nodejs中这个模块是可以直接使用的。

const fs = require('fs')


//重置img文件夹
const toolsResetImgDir = async (req, res) => {
  const { dirPath = 'D:/temp/yuying/video/grade1/chinese1' } = req.body
  let imgDirPath = dirPath + '-img'
  const isExistImgDir = fs.existsSync(imgDirPath)
  if (isExistImgDir) {
    //删除文件夹
    fs.rmdirSync(imgDirPath, { recursive: true })
  }
  //创建文件夹
  fs.mkdirSync(imgDirPath)
  //创建文件
  fs.writeFileSync(imgDirPath + '/截图.png', '1')
  res.send({
    code: 200,
    data: {
      dirPath,
      isExistImgDir
    },
    message: '成功'
  })
}

//删除要更新的图片
const toolsDeleteImg = async (req, res) => {
  const { dirPath = 'D:/temp/yuying/', filename } =
    req.body
  const isExistImg = fs.existsSync(`${dirPath}${filename}`)
  if (isExistImg) {
    //删除文件
    fs.unlinkSync(`${dirPath}/${filename}`)
  }

  res.send({
    code: 200,
    data: {
      dirPath,
      filename
    },
    message: '成功'
  })
}