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、Python写的一个简易HTTP静态文件服务器
Jul 18 NodeJs
浅谈Nodejs应用主文件index.js
Aug 28 NodeJs
用nodejs搭建websocket服务器
Jan 23 NodeJs
Nodejs+Socket.io实现通讯实例代码
Feb 13 NodeJs
NodeJS链接MySql数据库的操作方法
Jun 27 NodeJs
nodejs实现简单的gulp打包
Dec 21 NodeJs
webstorm中配置nodejs环境及npm的实例
May 15 NodeJs
nodejs基础之常用工具模块util用法分析
Dec 26 NodeJs
基于nodejs的微信JS-SDK简单应用实现
May 21 NodeJs
nodejs实现用户登录路由功能
May 22 NodeJs
NodeJS http模块用法示例【创建web服务器/客户端】
Nov 05 NodeJs
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
Dec 14 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
《OVERLORD》第四季,终于等到你!
2020/03/02 日漫
层叠菜单的动态生成
2006/10/09 PHP
PHP中动态HTML的输出技术
2006/10/09 PHP
PHP 得到根目录的 __FILE__ 常量
2008/07/23 PHP
Thinkphp中的volist标签用法简介
2014/06/18 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
2014/12/18 PHP
php进行ip地址掩码运算处理的方法
2016/07/11 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
从Ajax到JQuery Ajax学习
2007/02/14 Javascript
JQUERY1.6 使用方法四 检测浏览器
2011/11/23 Javascript
关于eval 与new Function 到底该选哪个?
2013/04/17 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
AngularJS教程之简单应用程序示例
2016/08/16 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
layui弹出层按钮提交iframe表单的方法
2018/08/20 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
python通过http下载文件的方法详解
2019/07/26 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
python通用读取vcf文件的类(复制粘贴即可用)
2020/02/29 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
Python进行特征提取的示例代码
2020/10/15 Python
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
C&A巴西网上商店:时尚、衣服、手机和鞋子
2020/06/07 全球购物
怎样写好自我鉴定
2013/12/04 职场文书
挂科检讨书范文
2014/02/20 职场文书
年会邀请函范文
2015/01/30 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
拒绝盗图!教你怎么用python给图片加水印
2021/06/04 Python