nodejs入門 靜態檔案伺服器

2022-03-25 02:27:42 字數 2755 閱讀 6728

本文展示是基於node.js的靜態檔案伺服器,**參考自這裡,主要是練習node http、檔案模組的使用,另外,對理解http協議也很有幫助

除了實現了基本的路由控制,還實現了mime型別、304快取、gzip壓縮、目錄讀取

首先是配置檔案,setting.js

var setting =

, compress :};

module.exports

= setting;

mime對映,mime.js

var mime =

;module.exports

= mime;

然後是主程式,server.js

//訪問統計

;//安全問題,禁止父路徑

//判斷檔案是否存在

function readpath(req, res, realpath, pathname)

,'this request url '

+ pathname +

' was not found on this server.');

}else

else

else

responsewrite(res,

200,

, htm);}

});}

else

if(setting.index

&& realpath.indexof

(setting.index

)<0)

else

,'this request url '

+ pathname +

' was not found on this server.');

}}else

;//快取支援

if(setting.expires

&& setting.expires.filematch

&& type.match

(setting.expires.filematch))

else

}else}}

});}

});}

//讀檔案/壓縮/輸出

function readfile(req, res, realpath, header, type)

else

if(req.headers

['accept-encoding'

].match

(/\bdeflate\b/))

} res.writehead

(200

, header);if

(cfun)

else

}//普通輸出

function responsewrite(res, starus, header, output, encoding)

res.end()

; accesses[res.number

].endtime

=new

date

().gettime()

;//日誌輸出

console.log

('access[%s]--%s--%s--%s--%s\n

\n', res.number

, accesses[res.number

].path

,(accesses[res.number

].endtime

- accesses[res.number

].starttime),

starus,

(output ? output.length:0

));delete accesses[res.number];

}

over!

尚欠缺的功能:日誌記錄、斷點、容錯等~~以後有時間再加啦

AnyWhere 靜態檔案伺服器

2020 11 27 16 47 43 anywhere是一款隨啟隨用的靜態檔案伺服器,可以隨時隨地將你的當前目錄變成乙個靜態檔案伺服器的根目錄。npm install anywhere g anywhere or with port anywhere p 8000 or start it but ...

用Nodejs實現檔案伺服器 一

這份伺服器 僅實現了乙個簡單的檔案伺服器,接收來自api伺服器的請求,儲存或傳送使用者的 該伺服器沒有考慮當存在大量請求時的效能問題,本身對於專案來說亦功能不完善。這兩個問題將在後續中一一解決。首先應用express模組與fs模組,這是處理url請求與檔案讀寫必不可少的一部分。如果對這兩個模組的使用...

檔案伺服器

實現對檔案增刪改查,若是伺服器需要考慮的壓縮 檔案你儲存在電腦裡面也可以,儲存在電腦裡面給乙個路徑就可以了,為什麼要用檔案伺服器 對檔案的操作有記錄 比如增刪改查,可以花式查詢並對結果做操作,之前需要用比較複雜的正則才可以 做到,比如按照日期查詢,尤其是數量高到幾萬的時候,window自帶的檔案管理...