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, 另外需要注意文件路径.

脆弱的事物喜欢安宁的环境,而反脆弱的事物则从混乱中成长.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值