在node環境中全部與文件操做都是經過fs核心模塊實現的。包括文件的建立、刪除、查詢以及讀寫和寫入html
在 fs 模塊中,全部的方法都分爲同步和異步兩種實現,具備 sync 後綴的方法爲同步方法,不具備 sync 後綴的方法爲異步方法node
文件讀取服務器
同步文件讀取readFileSync異步
第一個參數爲讀取文件的路徑或文件描述符;函數
第二個參數爲 options,默認值爲 nullui
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);
異步文件讀取readFileurl
第一個參數爲讀取文件的路徑或文件描述符spa
第二個參數爲 options,默認值爲 nullcode
第三個參數爲callback回調函數htm
函數內有兩個參數 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);//監聽端口