在node环境中所有与文件操作都是通过fs核心模块实现的。包括文件的创建、删除、查询以及读写和写入
在 fs 模块中,所有的方法都分为同步和异步两种实现,具有 sync 后缀的方法为同步方法,不具有 sync 后缀的方法为异步方法
文件读取
同步文件读取readFileSync
第一个参数为读取文件的路径或文件描述符;
第二个参数为 options,默认值为 null
const fs = require('fs'); fs.readFile('./www/1.txt',(error,data)=>{ if(error){ console.log('404'); }else{ console.log(data.toString()); } }); //readFileSycn只有成功状态,找不到就报错 try { let data = fs.readFileSync('./www/1.txt'); console.log(data.toString()); } catch (error) { } console.log(11111);
异步文件读取readFile
第一个参数为读取文件的路径或文件描述符
第二个参数为 options,默认值为 null
第三个参数为callback回调函数
函数内有两个参数 err(错误)和 data(数据),该方法没有返回值,回调函数在读取文件成功后执行
//文件的读取 fs.readFile("1.txt",function (err,data) { if (err){ console.log(err) }else { console.log(data.toString()) } })
文件写入
同步文件写入writeFileSync
第一个参数为写入文件的路径或文件描述符
第二个参数为写入的数据,类型为 String 或 Buffer
第三个参数为 options,默认值为 null
const fs = require("fs"); fs.writeFileSync("2.txt", "Hello world"); let data = fs.readFileSync("2.txt", "utf8"); console.log(data);
异步文件写入writeFile
第一个参数为读取文件的路径或文件描述符
第二个参数为 options,默认值为 null
let fs = require('fs'); fs.writeFile('./www/2.txt','dsnadkjsjdksa',(error)=>{ if(error){ console.log('失败'); }else{ console.log('成功'); } })
文件删除
同步文件删除unlinkSync
const fs = require("fs");
fs.unlinkSync("a/inde.js");
异步文件删除unlink
const fs = require("fs"); fs.unlink("a/index.js", err => { if (!err) console.log("删除成功"); });
栗子—判断URL是接口还是请求静态资源(页面)
思路:
如果url里面包含?就说明请求的是接口
否则是静态文件。需要拼地址
let http = require('http');//引入http模块用来构建服务器 let fs = require('fs');//需要读写删等操作时候就引入fs文件系统模块 http.createServer((req,res)=>{ //判断是请求接口还是请求静态页面 let url = req.url; if(url.includes('?')){//如果url包含?代表请求的是接口 //向客户端发送头信息(防止中文乱码) res.writeHead(200,{'Content-Type':'text/html;charset=utf-8'}); res.write('每天进步一点点'); res.end(); }else{//否则请求的是静态页面 // 斜杠代表 localhost //默认出现index文件 if(url === '/') {url = '/inex.html';} //读入文件 fs.readFile('./www'+url,(err,data)=>{ if(err){ //如果没有文件,就读取404页面 let data = fs.readFileSync('./www./404.html'); res.write(data); }else{ //如果有文件就把文件发给前台 res.write(data); } res.end();//写入结束 }); } }).listen(80);//监听端口