node-fs文件系統模塊

在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);//監聽端口
相關文章
相關標籤/搜索