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写的一个简单项目打包工具
May 11 NodeJs
nodejs之请求路由概述
Jul 05 NodeJs
nodejs入门教程二:创建一个简单应用示例
Apr 24 NodeJs
Nodejs实现多房间简易聊天室功能
Jun 20 NodeJs
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
Jul 05 NodeJs
Nodejs进阶之服务端字符编解码和乱码处理
Sep 04 NodeJs
NodeJS实现视频转码的示例代码
Nov 18 NodeJs
nodejs 日志模块winston的使用方法
May 02 NodeJs
NodeJs操作MongoDB教程之分页功能以及常见问题
Apr 09 NodeJs
nodejs提示:cross-device link not permitted, rename错误的解决方法
Jun 10 NodeJs
Nodejs监听日志文件的变化的过程解析
Aug 04 NodeJs
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
May 30 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
老机欣赏|中国60年代精品收音机
2021/03/02 无线电
php设计模式 Template (模板模式)
2011/06/26 PHP
Drupal7连接多个数据库及常见问题解决
2014/03/02 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
2016/10/17 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
Ext 表单布局实例代码
2009/04/30 Javascript
jquery动态加载图片数据练习代码
2011/08/04 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
浅谈Sticky组件的改进实现
2016/03/22 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
bootstrap table 多选框分页保留示例代码
2017/03/08 Javascript
vue.js移动端tab组件的封装实践实例
2017/06/30 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
vue 动态绑定背景图片的方法
2018/08/10 Javascript
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
nodejs 使用nodejs-websocket模块实现点对点实时通讯
2018/11/28 NodeJs
小程序分页实践之编写可复用分页组件
2019/07/18 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
vue缓存之keep-alive的理解和应用详解
2020/11/02 Javascript
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
python连接、操作mongodb数据库的方法实例详解
2019/09/11 Python
python二维键值数组生成转json的例子
2019/12/06 Python
详解字符串在Python内部是如何省内存的
2020/02/03 Python
pytorch ImageFolder的覆写实例
2020/02/20 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
2020/10/02 Python
主持人演讲稿范文
2013/12/28 职场文书
金融事务专业求职信
2014/04/25 职场文书
庐山导游词
2015/02/03 职场文书
html5 录制mp3音频支持采样率和比特率设置
2021/07/15 Javascript