基本上快取參考後長這樣:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | var cache = {}; function regist(type) { if (!cache[type]) { cache[type] = {}; } } function get(type, key) { if (cache[type] && cache[type][key]) { return cache[type][key]; } } function put(type, key, val) { if (cache[type]) { cache[type][key] = val; } } function del(type, key) { if (cache[type] && cache[type][key]) { cache[type][key] = null ; delete cache[type][key]; } } function query(type, key) { if (cache[type] && cache[type][key]) { return true ; } else { return false ; } } module.exports = { regist: regist, get: get, put: put, del: del, query: query }; |
以上參考自IT幫 : 本篇 : http://ithelp.ithome.com.tw/question/10077753
但是套上去總是會有些問題... 所以我就參考了filecache 這個模組。
Filecache NPM : https://www.npmjs.org/package/filecache
先來安裝:
npm install filecache
您可以先到node_modules底下filecache有個example, 可以執行一下node server.js 開啟 localhsot:8081之後看一下官方寫的一串example使用方式:
1 2 3 4 5 6 | var filecache = require( 'filecache' ); filecache( './www' , function (err, cache) { console.log(cache[ '/getway.txt' ].toString()) }); |
取得cache的file會傳回一個buffer, 用toString()把他換掉,然後我習慣加分號 ';'

先建立一個www資料夾,裡面放一個 getway.txt 裡面寫些字在執行
OK! 我來實現一下利用filecache模組來建立一個有快取的伺服器:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var filecache = require( 'filecache' ) var http = require( 'http' ); var url = require( 'url' ); var basewww = '/www' ; var dirpath = __dirname + basewww; http.createServer( function (req,res){ var urlobj = url.parse(req.url); filecache(dirpath, function (err, cache) { res.writeHead(200,{ 'Content-Type' : 'text/html' }); res.end(cache[urlobj.pathname]); }); }).listen(8011); |