nodejs读取memcache示例分享


Posted in NodeJs onJanuary 02, 2014
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);
NodeJs 相关文章推荐
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
Jan 01 NodeJs
NodeJS远程代码执行
Aug 28 NodeJs
Nodejs+Socket.io实现通讯实例代码
Feb 13 NodeJs
用nodeJS搭建本地文件服务器的几种方法小结
Mar 16 NodeJs
NodeJs通过async/await处理异步的方法
Oct 09 NodeJs
nodejs实现OAuth2.0授权服务认证
Dec 27 NodeJs
nodejs使用http模块发送get与post请求的方法示例
Jan 08 NodeJs
nodejs实现解析xml字符串为对象的方法示例
Mar 14 NodeJs
对mac下nodejs 更新到最新版本的最新方法(推荐)
May 17 NodeJs
nodejs用gulp管理前端文件方法
Jun 24 NodeJs
NodeJS模块与ES6模块系统语法及注意点详解
Jan 04 NodeJs
nodejs一个简单的文件服务器的创建方法
Sep 13 NodeJs
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
Nov 18 #NodeJs
NodeJS的url截取模块url-extract的使用实例
Nov 18 #NodeJs
NodeJS url验证(url-valid)的使用方法
Nov 18 #NodeJs
NodeJS与Mysql的交互示例代码
Aug 18 #NodeJs
利用NodeJS的子进程(child_process)调用系统命令的方法分享
Jun 05 #NodeJs
将nodejs打包工具整合到鼠标右键的方法
May 11 #NodeJs
用nodejs写的一个简单项目打包工具
May 11 #NodeJs
You might like
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
通过修改Laravel Auth使用salt和password进行认证用户详解
2017/08/17 PHP
jQuery 判断页面元素是否存在的代码
2009/08/14 Javascript
关于JQuery($.load)事件的用法和分析
2013/04/09 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
JQuery复制DOM节点的方法
2015/06/11 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
jquery操作select元素和option的实例代码
2016/02/03 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
AngularJS 单选框及多选框的双向动态绑定
2017/04/20 Javascript
深入理解vue-loader如何使用
2017/06/06 Javascript
js中的 || 与 && 运算符详解
2018/05/24 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
小程序实现列表多个批量倒计时
2021/01/29 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
原生js实现自定义滚动条
2021/01/20 Javascript
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
python文件比较示例分享
2014/01/10 Python
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
Python编程中time模块的一些关键用法解析
2016/01/19 Python
Python 3中print函数的使用方法总结
2017/08/08 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
在django admin详情表单显示中添加自定义控件的实现
2020/03/11 Python
通用C#笔试题附答案
2016/11/26 面试题
高中生家长会演讲稿
2014/01/14 职场文书
殡葬服务心得体会
2014/09/11 职场文书
小学生心理健康活动总结
2015/05/08 职场文书
赞助商致辞
2015/07/30 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书
python基于OpenCV模板匹配识别图片中的数字
2021/03/31 Python
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers