1 const fs = require("fs"); 2 const path = require("path"); 3 4 fs.appendFile("./node/1.txt","\n2222222222",(err) => { 5 console.log("追加"+err); 6 }) 7 8 fs.readFile("./node/1.txt","utf-8",function(err,data){ 9 if(err){ 10 console.log(err.message); 11 }else{ 12 console.log("读"+data); 13 } 14 }) 15 16 fs.writeFile("./node/1.txt","333",(err) => { 17 console.log("写"+err); 18 }) 19 20 fs.copyFile(path.join(__dirname,"/1.txt"),path.join(__dirname,"/2.txt"),(err) => { 21 if(err) return console.log(err.message) 22 console.log("拷贝成功") 23 }) 24 25 fs.stat(path.join(__dirname,‘/1.txt‘),(err,data) => { 26 if(err) return console.log(err.message); 27 console.log(data.size);//读取文件大小 28 console.log(data.isFile());//是否是文件 29 })
文件的读写操作都是异步,在回调函数中返回数据 ,所有执行的顺序并不固定,当同时进行读,追加操作时,数据会变的无法预测。
1 const fs = require("fs") 2 const path = require("path") 3 4 require("http").createServer().on("request", (req, res) => { 5 let data = requestFlie(req.url, res) 6 }).listen(3000, "127.0.0.1", () => { 7 console.log("http://127.0.0.1:3000 启动") 8 }) 9 //由于fs.readFile()是异步操作,所以无法同步返回 读取的数据,只能通过传递参数 res ,调用res.end来返回数据并结束事件 10 function requestFlie(url, res) { 11 fs.readFile(path.join(__dirname, url), (err, data) => { 12 if (err) { 13 res.writeHeader(200, {"Content-Type":"text/html;charset=utf8"}) 14 res.end("文件不存在") 15 } 16 res.end(data) 17 }) 18 }
原文:https://www.cnblogs.com/csdcs/p/node.html