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教程 安装express及配置app.js文件的详细步骤
May 11 NodeJs
nodejs创建web服务器之hello world程序
Aug 20 NodeJs
详解nodejs微信公众号开发——2.自动回复
Apr 10 NodeJs
nodejs 终端打印进度条实例代码
Apr 22 NodeJs
Nodejs进阶:express+session实现简易登录身份认证
Apr 24 NodeJs
nodejs6下使用koa2框架实例
May 18 NodeJs
mac下的nodejs环境安装的步骤
May 24 NodeJs
nodejs操作mysql实现增删改查的实例
May 28 NodeJs
NodeJs使用Mysql模块实现事务处理实例
May 31 NodeJs
使用nodejs+express实现简单的文件上传功能
Dec 27 NodeJs
Nodejs中的JWT和Session的使用
Aug 21 NodeJs
基于Nodejs的Tcp封包和解包的理解
Sep 19 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
默默小谈PHP&MYSQL分页原理及实现
2007/01/02 PHP
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
laravel 5.3中自定义加密服务的方案详解
2017/05/09 PHP
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
JS的千分位算法实现思路
2013/07/31 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
什么是cookie?js手动创建和存储cookie
2014/05/27 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
2015/11/30 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
2018/09/21 Javascript
总结javascript三元运算符知识点
2018/09/28 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
google广告之另类js调用实现代码
2020/08/22 Javascript
[16:14]教你分分钟做大人:米拉娜(HEROS)
2014/11/24 DOTA
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
使用python实现baidu hi自动登录的代码
2013/02/10 Python
爬山算法简介和Python实现实例
2014/04/26 Python
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
Python注释详解
2016/06/01 Python
Python 装饰器使用详解
2017/07/29 Python
Python2包含中文报错的解决方法
2018/07/09 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
Python for循环及基础用法详解
2019/11/08 Python
pycharm实现猜数游戏
2020/12/07 Python
27个经典Linux面试题及答案,你知道几个?
2013/01/10 面试题
历史学专业大学生找工作的自我评价
2013/10/16 职场文书
《二泉映月》教学反思
2014/04/15 职场文书
化验室岗位职责
2015/02/14 职场文书
2015年行政人事工作总结
2015/05/21 职场文书
毕业欢送会致辞
2015/07/29 职场文书
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android