基本上快取參考後長這樣:
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使用方式:
var filecache = require('filecache');
filecache('./www', function(err, cache) {
console.log(cache['/getway.txt'].toString())
});
取得cache的file會傳回一個buffer, 用toString()把他換掉,然後我習慣加分號 ';'
先建立一個www資料夾,裡面放一個 getway.txt 裡面寫些字在執行
OK! 我來實現一下利用filecache模組來建立一個有快取的伺服器:
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);
,應該成功了!
沒有留言:
張貼留言