nodeJs 读取memcache

var memcache = require('memcache')
	, http = require('http')
	, url = require('url')
	, qs = require('querystring')
	, memsettings = { port: 2000, host: '10.6.0.6' }
	, httpsettings = { port: 3000 }
	, cacheObject = {}
	, httpserver
	, client
	, requestHandler;

client = new memcache.Client(memsettings.port, memsettings.host);
//...
client.on('connect', function(){
	client.connected = true;
});

client.on('close', function(){
	// no arguments - connection has been closed
	client.connected = false;
});

function getData(key, wrapper, res){
    client.get(key, function(error, result){
            // all of the callbacks have two arguments.
            // 'result' may contain things which aren't great, but
            // aren't really errors, like 'NOT_STORED'
            if(!error){
                if(result){
                    cacheObject[key] = result;
                    res.write( wrapper + '(' + result + ')');
                } else {
                    res.write('no data');
                }
                res.end();
            }
     });
    /*if(cacheObject[key]){
        response.write(cacheObject[key]);
        response.end();
    } else  {
        client.get(key, function(error, result){

            // all of the callbacks have two arguments.
            // 'result' may contain things which aren't great, but
            // aren't really errors, like 'NOT_STORED'
            if(!error){
                cacheObject[key] = result;
                cacheObject[key]['timeoutId'] = setTimeout(function(){
                    client.get(key, function(error, result){
                        if(!error){
                            cacheObject[key] = result;
                        }
                    });
                });
                response.write(result);
                response.end();
            }
        });
    }*/
}

httpserver = http.createServer(function(req, res){
	var urlObj, queryObj;
	urlObj = url.parse(req.url);
	res.writeHead(200, {"Content-Type":"text/javascript; charset=utf-8"});
	queryObj = qs.parse(urlObj.query);
    path = queryObj.pathname;
    if(queryObj.gid){
        getData(queryObj.gid, queryObj.callback||'callback', res);
    } else {
        res.write('no input');
        res.end();
    }
    /*
    switch(urlObj.pathname){
        case '/pai':
            res.write(urlObj.pathname);
        break;
        case '/qiang':
            res.write(urlObj.pathname);
        break;
        default:
            res.write('default');
        break;
    }
    res.end();
    */
});




client.connect();
httpserver.listen(httpsettings.port);
console.log('http server listening on ' + httpsettings.port);

  

posted @ 2013-03-25 19:47  Arliang  阅读(2456)  评论(0编辑  收藏  举报