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与Mysql的交互示例代码
Aug 18 NodeJs
Nodejs中自定义事件实例
Jun 20 NodeJs
NodeJS学习笔记之网络编程
Aug 03 NodeJs
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
Sep 26 NodeJs
Nodejs express框架一个工程中同时使用ejs模版和jade模版
Dec 28 NodeJs
nodeJS实现路由功能实例代码
Jun 08 NodeJs
nodejs开发微信小程序实现密码加密
Jul 11 NodeJs
NodeJS读取分析Nginx错误日志的方法
May 14 NodeJs
nodejs中使用archive压缩文件的实现代码
Nov 26 NodeJs
nodeJs的安装与npm全局环境变量的配置详解
Jan 06 NodeJs
nodeJs项目在阿里云的简单部署
Nov 27 NodeJs
ubuntu系统下使用pm2设置nodejs开机自启动的方法
May 12 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
Laravel重写用户登录简单示例
2016/10/08 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
利用switch语句进行多选一判断的实例代码
2016/11/14 PHP
有一段有意思的代码-javascript现实多行信息
2007/08/26 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
jQuery 绑定事件到动态创建的元素上的方法实例
2013/08/18 Javascript
JQuery中serialize() 序列化
2015/03/13 Javascript
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
JS实现颜色梯度与渐变效果完整实例
2016/12/30 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
Nodejs处理异常操作示例
2018/12/25 NodeJs
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
[48:00]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第二场 11.04
2020/11/04 DOTA
Python封装原理与实现方法详解
2018/08/28 Python
利用python在excel里面直接使用sql函数的方法
2019/02/08 Python
selenium+python环境配置教程详解
2019/05/28 Python
python 表格打印代码实例解析
2019/10/12 Python
Jupyter Notebook 实现正常显示中文和负号
2020/04/24 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
怎么解决pycharm license Acti的方法
2020/10/28 Python
村委会贫困证明
2014/01/14 职场文书
同事吵架检讨书
2014/02/05 职场文书
致跳远运动员广播稿
2014/02/11 职场文书
火箭队口号
2014/06/18 职场文书
个人融资协议书
2014/10/02 职场文书
2014年人力资源部工作总结
2014/11/19 职场文书
员工辞职信怎么写
2015/02/27 职场文书
法人代表证明书范本
2015/06/18 职场文书
2016年学校禁毒宣传活动工作总结
2016/04/05 职场文书
创业计划书之寿司
2019/07/19 职场文书
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS