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 后缀名判断限制代码
Mar 31 NodeJs
Windows系统中安装nodejs图文教程
Feb 28 NodeJs
深入浅析NodeJs并发异步的回调处理
Dec 21 NodeJs
nodejs实现bigpipe异步加载页面方案
Jan 26 NodeJs
NodeJs读取JSON文件格式化时的注意事项
Sep 25 NodeJs
nodejs个人博客开发第六步 数据分页
Apr 12 NodeJs
NodeJS自定义模块写法(详解)
Jun 27 NodeJs
nodejs实现OAuth2.0授权服务认证
Dec 27 NodeJs
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
Jan 05 NodeJs
基于Nodejs的Tcp封包和解包的理解
Sep 19 NodeJs
NodeJs操作MongoDB教程之分页功能以及常见问题
Apr 09 NodeJs
nodejs实现UDP组播示例方法
Nov 04 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 Ajax实现页面无刷新发表评论
2007/01/02 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
Laravel4中的Validator验证扩展用法详解
2016/07/26 PHP
laravel学习笔记之模型事件的几种用法示例
2017/08/15 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
php适配器模式简单应用示例
2019/10/23 PHP
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
jquery 简单应用示例总结
2013/08/09 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
Json和Jsonp理论实例代码详解
2013/11/15 Javascript
Jquery结合HTML5实现文件上传
2015/06/25 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
WEB 前端开发中防治重复提交的实现方法
2016/10/26 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
js实现下拉框二级联动
2018/12/04 Javascript
jquery传参及获取方式(两种方式)
2020/02/13 jQuery
jQuery实现简单轮播图效果
2020/12/27 jQuery
[02:39]DOTA2国际邀请赛助威团西雅图第一天
2013/08/08 DOTA
python实现的简单RPG游戏流程实例
2015/06/28 Python
python实现飞机大战微信小游戏
2020/03/21 Python
python urllib爬虫模块使用解析
2019/09/05 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
会计实习自我鉴定
2013/12/04 职场文书
实习评语
2013/12/16 职场文书
工作简报怎么写
2015/07/21 职场文书
干货:企业内部人才推荐奖励方案!
2019/07/09 职场文书
关于golang高并发的实现与注意事项说明
2021/05/08 Golang
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技