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访问ActiveX对象,以操作Access数据库为例。
Dec 15 NodeJs
nodejs开发环境配置与使用
Nov 17 NodeJs
nodejs下打包模块archiver详解
Dec 03 NodeJs
windows下安装nodejs及框架express
Aug 07 NodeJs
nodejs实现bigpipe异步加载页面方案
Jan 26 NodeJs
win系统下nodejs环境安装配置
May 04 NodeJs
使用npm安装最新版本nodejs
Jan 18 NodeJs
nodeJS模块简单用法示例
Apr 21 NodeJs
NodeJS搭建HTTP服务器的实现步骤
Oct 12 NodeJs
用Electron写个带界面的nodejs爬虫的实现方法
Jan 29 NodeJs
Nodejs对postgresql基本操作的封装方法
Feb 20 NodeJs
nodejs使用node-xlsx生成excel的方法示例
Aug 22 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 Errcode: 28 终极解决方法
2009/07/01 PHP
PHP5 字符串处理函数大全
2010/03/23 PHP
PHP如何解决网站大流量与高并发的问题
2011/06/25 PHP
PHP中使用file_get_contents post数据代码例子
2015/02/13 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
Javascript延迟执行实现方法(setTimeout)
2010/12/30 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
使用JavaScript 编写简单计算器
2014/11/24 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
2016/06/08 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
2016/09/04 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
2017/10/27 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
Vue 解决多级动态面包屑导航的问题
2019/11/04 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
介绍Python的Django框架中的QuerySets
2015/04/20 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
CSS3实现简易版的刮刮乐效果
2016/09/27 HTML / CSS
武汉某公司的C#笔试题面试题
2015/12/25 面试题
建筑专业毕业生推荐信
2013/11/21 职场文书
资源环境与城市管理专业推荐信
2013/11/30 职场文书
银行介绍信范文
2014/01/10 职场文书
红领巾心向党广播稿
2014/01/19 职场文书
城管年度个人总结
2015/02/28 职场文书
个人总结格式范文
2015/03/09 职场文书
中学综治宣传月活动总结
2015/05/07 职场文书
放假通知怎么写
2015/08/18 职场文书
详解Vue slot插槽
2021/11/20 Vue.js