返回

借助 fs 和 path 模块,掌握 Node.js 中的文件操作

前端

认识 Node.js 中的文件操作

在 Node.js 中,fs 模块提供了丰富的 API,使你能够轻松地与文件系统进行交互。通过使用 fs 模块,你可以读取和写入文件、创建和删除目录,以及获取有关文件和目录的信息。而 path 模块则提供了处理文件路径的实用功能,比如解析路径、拼接路径以及判断路径是否存在。

探索 fs 模块的强大功能

读取文件内容

const fs = require('fs');

// 同步读取文件
const data = fs.readFileSync('./file.txt', 'utf8');

// 异步读取文件
fs.readFile('./file.txt', 'utf8', (err, data) => {
  if (err) throw err;
  console.log(data);
});

写入文件内容

const fs = require('fs');

// 同步写入文件
fs.writeFileSync('./file.txt', 'Hello world!', 'utf8');

// 异步写入文件
fs.writeFile('./file.txt', 'Hello world!', 'utf8', (err) => {
  if (err) throw err;
  console.log('File written successfully');
});

创建和删除目录

const fs = require('fs');

// 创建目录
fs.mkdirSync('./new-directory');

// 删除目录
fs.rmdirSync('./new-directory');

获取文件和目录信息

const fs = require('fs');

// 获取文件信息
const stats = fs.statSync('./file.txt');

// 获取目录信息
const stats = fs.lstatSync('./directory');

巧用 path 模块处理文件路径

path 模块提供了多种方法来处理文件路径。下面列举几个常用方法:

const path = require('path');

// 解析路径
const parsedPath = path.parse('./file.txt');

// 拼接路径
const newPath = path.join('./directory', 'new-file.txt');

// 判断路径是否存在
const exists = path.existsSync('./file.txt');

实际应用场景

日志记录

fs 模块可以用来将日志信息写入文件中,以便于后续分析和调试。

const fs = require('fs');

// 写入日志信息
fs.appendFileSync('./logs.txt', 'Error occurred at ' + new Date().toISOString() + '\n');

文件上传

fs 模块和 path 模块可以配合使用来处理文件上传。

const fs = require('fs');
const path = require('path');

// 保存上传的文件
const uploadedFile = req.files.file;
const filePath = path.join(__dirname, 'uploads', uploadedFile.name);
uploadedFile.mv(filePath, (err) => {
  if (err) throw err;
  // ...
});

总结

通过使用 fs 和 path 模块,你可以轻松地操作文件和文件路径,从而为你的 Node.js 应用程序增添强大的文件管理功能。本文介绍了这些模块的主要特性和用法,希望你能够熟练掌握它们,并在你的项目中发挥它们的威力。