Welcome 微信登录

首页 / 脚本样式 / JavaScript / 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);