Node.js 内置模块 fs 实现文件读写操作

上篇文章已经可以搭建一个简单的 node 服务器了,那么在实际应用中那面会用到文件读写,特别是在前端没有数据库支持进行接口模拟的情况下,读写文件响应数据便非常有用.

一. Node.js 内置模块 fs 基本使用

1.引入模块

const fs = require(fs);

2. 文件读取操作

fs.readFile(路径, (data, err) => { // 读取成功 data 读取到的数据 err 没有内容 // 读取失败 data 为 undefined err 有内容 // ===== // 读取内容 默认为二进制, 要正确得到文字可使用 toString() 或者在 在路径后添加编码格式 utf-8 });

3. 文件写操作

fs.writeFile(路径, 内容, 回调函数); 注意1:如果没有这个文件,它会帮你创建,如果有这个文件会帮你覆盖 但是如果没有对应的文件夹就报错 注意2:内容只能是字符串或二进制数组,否则报错

4. 文件读写要考虑的路径问题

在node 中相对路径是相对于当前终端的路径, 搭建的服务资源可能换台服务器请求路径有变,因此文件读写及涉及文件路径等的操作都要使用绝对路径. 使用 node 中内置的 path 模块,拼接绝对路径.

const path = require(path); __dirname 获取的是当前代码文件所在的绝对路径,不包含文件名 __filename 获取的是当前代码文件所在的绝对路径,包含文件名 // 路径拼接 path.join(路径, 文件名) path.join(__dirname, files/text01.txt)

二. 文件读操作

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

const app = express();
app.get(/, (req, res) => {
  res.setHeader(Content-Type, text/html; charset=utf-8);
  const fullPath = path.join(__dirname, files, text01.txt);
  fs.readFile(fullPath, (data, err) => {
     if (!err) {
      res.send(data);
     } else {
       res.send(err);
     }
  });
});
app.listen(2333, () => {
  console.log(启动端口 2333);
});

浏览器访问根目录, 即可获取到文件中的内容

三. 文件写操作

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

const app = express();
app.get(/, (req, res) => {
  res.setHeader(Content-Type, text/html; charset=utf-8);
  const fullPath = path.join(__dirname, files, text01.txt);
  // 文件读操作
  // fs.readFile(fullPath, (data, err) => {
  //    if (!err) {
  //     res.end(data);
  //    } else {
  //      res.end(err);
  //    }
  // });
  // 文件写操作
  const writePath = path.join(__dirname, files, text02.txt);
  fs.writeFile(writePath, 今日晴空万里!, (data, err) => {
    if (!err) {
      res.send(文件写入成功);
    } else {
      res.send(err);
    }
  });
});
app.listen(2333, () => {
  console.log(启动端口 2333);
});

重启服务,访问根目录即可查看写入的文件.

以上便可完成使用node 内置模块 完成简单的文件读写,核心方法 fs.readFile fs.writeFile, 另外需要注意文件路径.

脆弱的事物喜欢安宁的环境,而反脆弱的事物则从混乱中成长.
经验分享 程序员 微信小程序 职场和发展