复制代码代码如下:
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
、 クライアント
、requesthandler;
client = new memcache.client(memsettings.port、memsettings.host);
// ...
client.on( 'connect'、function(){
client.connected = true;
});
client.on( 'close'、function(){
//引数はありません - 接続が閉じられています
client.connected = false;
});
関数getData(key、wrapper、res){
client.get(key、function(error、result){
//すべてのコールバックには2つの引数があります。
// 'result'にはあまり良くないものが含まれる場合があります
//「not_stored」のようなエラーではありません
if(!error){
if(result){
cacheobject [key] = result;
res.write(wrapper + '(' + result + ')');
} それ以外 {
res.write( 'no data');
}
res.end();
}
});
/*if(cacheobject [key]){
Response.write(cacheobject [key]);
Response.End();
} それ以外 {
client.get(key、function(error、result){
//すべてのコールバックには2つの引数があります。
// 'result'にはあまり良くないものが含まれる場合があります
//「not_stored」のようなエラーではありません
if(!error){
cacheobject [key] = result;
cacheobject [key] ['timeoutid'] = setimeout(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);
} それ以外 {
res.write( '入力なし');
res.end();
}
/*
switch(urlobj.pathname){
ケース '/pai':
res.write(urlobj.pathname);
壊す;
ケース '/Qiang':
res.write(urlobj.pathname);
壊す;
デフォルト:
res.write( 'default');
壊す;
}
res.end();
*/
});
client.connect();
httpserver.listen(httpsettings.port);
console.log( 'httpサーバー' + httpsettings.port);