拥抱大家庭,nodejs走thrift。最贱的例子,nodejs与nodejs之间走thrift对传。

1,官网下载

http://mirrors.cnnic.cn/apache/thrift/0.9.1/thrift-0.9.1.exe

2,编辑xuser.thrift

struct User{
1: string uid,
2: string uname,
3: bool usex,
4: i16 uage
}
service UserService{
void add(1: User u),
string adduname(1: string uname),
User get(1: string uid)
}

3,生成IDL

thrift   --gen js:node xuser.thrift

4,目录下会多出文件

5,编辑server.js

var thrift=require("thrift");
var UserService=require('./gen-nodejs/UserService.js');
var ttypes=require('./gen-nodejs/xuser_types'); var users={}; var server=thrift.createServer(UserService,
{
add:function(user,callback){
console.log("add stored:",user.uname);
users[user.uid]=user;
console.log(users);
callback();},
adduname:function(x,callback){
console.log("adduname stored:",x);
callback(null,"MMMMM");
},
get:function(uid,callback){
console.log("get received:", uid);
console.log(users[uid]);
callback(null,users[uid]);
}
}
); server.listen(3000);
console.log("server start"); server.on("error",function(e){
console.log(e);
});

6,编辑client.js

var thrift =require('thrift');

var UserService = require('./gen-nodejs/UserService.js');
var ttypes = require('./gen-nodejs/xuser_types'); var connection = thrift.createConnection('127.0.0.1', 3000);
var client = thrift.createClient(UserService, connection); connection.on("error",function(e)
{
console.log(e);
}); var x=new ttypes.User({
uid:'112',
uname:'aab',
usex:0,
uage:'181'
}); client.add(x,function(err, res){
console.log("ADD OK1");
client.get('112',function(err, res){
if (err) {
console.error(err);
} else {
console.log("Res:",res);
connection.end();
}
});
client.adduname('112',function(err, res){
if (err) {
console.error(err);
} else {
console.log("Res:",res);
connection.end();
}
});
});

7,装nodejs的thrift包

npm install thrift

8,node server.js

9,node client.js

OK,小功告成。

拥抱大家庭,nodejs走thrift的更多相关文章

  1. Nodejs通过thrift访问Java服务

    上一篇文章中实现了用Java作为thrift客户端和服务端.接下来我们用nodejs作为客户端访问一下.Nodejs的安装可以查看http://www.cnblogs.com/xucheng/p/39 ...

  2. Nodejs通过Thrift操作hbase卡住原因分析及与javascript的垃圾回收机制的关系

    在最近使用Nodejs通过Thrift操作hbase的时候写了个脚本,不断发送http请求,从而取得hbase下所需的数据,但是在run的过程中for循环并没有执行完全,在执行一部分后会卡住,就再也进 ...

  3. Cassandra C++/NodeJs开发环境

    工作的需要,开始更多地倾向于去中心化的结构,目前看来Cassandra算是去中心化DB中性能/管理最热门的选择,崇尚其P2P的理念. 自身原因对JAVA不擅长(周围写C的好少),还是更热衷于C++/J ...

  4. 使用thrift实现了Javaserver和nodejsclient之间的跨平台通信

    1. 简介 thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎.以构建在 C++, Java, Python, PHP, Ruby, Erlang ...

  5. 【 DCOS 】织云 CMDB 管理引擎技术详解

    欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者 : 李琦 , 腾讯高级工程师 , 就职于网络平台部.曾负责公司海量运营系统的规划设计,如 TMP.Sniper.GSLB.IDCSp ...

  6. Stylus-NodeJS下构建更富表现力/动态/健壮的CSS

    --------------------------本文来自张鑫旭大神博客------------------------------ 一.为什么我会讲Stylus,而不是SASS和LESS? SAS ...

  7. bootstrap面试题

    1.你能描述一下渐进增强和优雅降级之间的不同吗? 优雅降级:Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作.由于IE独特的盒模型布局问题,针 ...

  8. DCOS :私有云的物理基础架构管理引擎

    https://cloud.tencent.com/developer/article/1005598 一.引言 云计算经过多年的发展,逐渐从概念到渐为人认知.到接受.到现在全行业拥抱上云,云的客户也 ...

  9. 【javascript常见面试题】常见前端面试题及答案

    转自:http://www.cnblogs.com/syfwhu/p/4434132.html 前言 本文是在GitHub上看到一个大牛总结的前端常见面试题,很多问题问的都很好,很经典.很有代表性.上 ...

随机推荐

  1. bash构造tmux显示tmux ssh状态

    要求: 于tmux内部链接ssh什么时候, 假设有多个ssh主机. 我们要显示相应的主机ip要显示筛查 实现效果 编辑你的bashrc, 由于我习惯在root下操作, 所以/root/.bashrc. ...

  2. Leetcode 实施细节 Rotate Image

    本文senlie原版的,转载请保留此地址:http://blog.csdn.net/zhengsenlie Rotate Image Total Accepted: 15609 Total Submi ...

  3. shell script 入门 笔记

    shell script 入门 在 shell script 注意必须使用完全相同写在下面: 1.  指令的运行是从上而下.从左而右的分析与运行: 2.  指令的运行就如同第五章内提到的: 指令.选项 ...

  4. ssh远程登录报错REMOTE HOST IDENTIFICATION HAS CHANGED!解决方式及原因

    注意,文档中的ip和指纹已经替换为了ip.ip.ip.ip 和aa:... ,以免引起不必要的误会. icode@test:~/lab/dir/sadf$ ssh remote_name@ip.ip. ...

  5. ignore,neglect,omit,overlook

    一:简介——ignore :通常指有意不顾,或不理显而易见的事物.neglect :侧重指有意的忽略或忽视,也可指粗心与疏忽.omit :指有意或无意地忘记做某事,也指删去被视作不重要.不合意的东西. ...

  6. 【转】[Android实例] Handler+ExecutorService(线程池)+MessageQueue模式+缓存模式

    android线程池的理解,晚上在家无事 预习了一下android异步加载的例子,也学习到了一个很重要的东东 那就是线程池+缓存  下面看他们的理解. [size=1.8em]Handler+Runn ...

  7. HDU 4946 Area of Mushroom 凸包

    链接:pid=4946">http://acm.hdu.edu.cn/showproblem.php?pid=4946 题意:有n个人.在位置(xi,yi),速度是vi,假设对于某个点 ...

  8. C该结构变化 struct typedef

     这几天看代码,看到若干类型的结构,例如下列结构声明: struct    book{ string name; int price; int num; }; 此种结构定义结构变量的格式例如以下: ...

  9. Codeforces Round #261 (Div. 2) E. Pashmak and Graph DP

    http://codeforces.com/contest/459/problem/E 不明确的是我的代码为啥AC不了,我的是记录we[i]以i为结尾的点的最大权值得边,然后wa在第35  36组数据 ...

  10. 关于sql中去换行符的问题

    今天要用bootstrap开发一个网页,要使用到JSON,但是JSON的格式不正确,然后在http://www.bejson.com/[Be JSON]中测试了一下JSON. 发现JSON中多了一个换 ...