基本上快取參考後長這樣:
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);,應該成功了!
沒有留言:
張貼留言