本文展示是基於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自帶的檔案管理...