node.js(四)----读取和写入文件

本文介绍如何使用Node.js的fs模块进行文件的读取与写入操作。包括同步和异步方式,并展示了具体的代码实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

node.js 操作文件的是 fs这个类

1.读取文件

    用的是   fs.readFile() 和 fs.readFileSync();

    创建一个  read_file文件

const fs = require('fs');

module.exports = {
  readSync : (path)=>{   //同步读文件
      let data = fs.readFileSync(path,'utf-8');
      return data;
  },
  read : (path,fn)=>{   //异步读文件
      fs.readFile(path,'utf-8',(err,data)=>{
          if(err){
            throw err;
          }else {
              if(typeof fn === 'function'){
                  fn(data);
              }
          }
      });
  }
};

    然后导入并执行

const read = require('./read_file');
const http = require('http');  //导入http
const hostname = '192.168.1.108';  //ip地址   随便写   如需要在局域网内,用手机访问,则需要将其设置为电脑的ipv4地址
const port = 3000;  //端口号
const server = http.createServer((req, res) => {   //创建一个server
    res.statusCode = 200;
    res.setHeader('Content-type', 'text/plain;charset = utf-8');
    if (req.url !== '/favicon.ico') {  //清除二次访问
        read.read('./my_directory/demo.txt',(data)=>{
            console.log('我是异步获取的'+data);
            res.write(data);
            res.end();   //用于关闭连接  若是用的异步,则需将end放在回调函数里,否则会报错
        });
        // console.log(read.readSync('./my_directory/demo.txt'));
        // res.end();   //用于关闭连接  同步就不需要
    }
});

server.listen(port, hostname, () => {  //监听server
    console.log(`服务器运行在http://${hostname}:${port}/`);
});


2.写入文件

用的是fs.writeFile() 和fs.writeFileSync();

const fs = require('fs');

module.exports = {

    writeSync : (file,data)=>{  //同步写入
        fs.writeFileSync(file,data,'utf-8');
        console.log('同步写入完成');
    },
    writeAsync : (file,data)=>{ //异步写入
        fs.writeFile(file,data,'utf-8',(err)=>{
            if(err){
                throw err;
            }
            console.log('异步写入完成');
        });
    }

};
const write = require('./write_file');
const http = require('http');  //导入http
const hostname = '192.168.1.108';  //ip地址   随便写   如需要在局域网内,用手机访问,则需要将其设置为电脑的ipv4地址
const port = 3000;  //端口号
const server = http.createServer((req, res) => {   //创建一个server
    res.statusCode = 200;
    res.setHeader('Content-type', 'text/plain;charset = utf-8');
    if (req.url !== '/favicon.ico') {  //清除二次访问

        write.writeAsync('./my_directory/write_in.txt','我是异步写入的内容');
        write.writeSync('./my_directory/write_in.txt','我是同步写入的内容');
        res.end();   //用于关闭连接  同步就不需要
    }
});

server.listen(port, hostname, () => {  //监听server
    console.log(`服务器运行在http://${hostname}:${port}/`);
});












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值