2014年10月6日 星期一

filecache / server模組應用

因為自己寫一個快取太煩亂了,試了一個禮拜未果,太拖framework開發的時間,所以就直接npm找模組來用了...
基本上快取參考後長這樣:

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);
,應該成功了!

沒有留言:

張貼留言

© Mac Taylor, 歡迎自由轉貼。
Background Email Pattern by Toby Elliott
Since 2014