拥抱大家庭,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,小功告成。

转载于:https://www.cnblogs.com/zacard-orc/p/3590405.html

拥抱大家庭,nodejs走thrift相关推荐

  1. 调用链监控:Dapper、Istio... etc.

    目录 Dapper,大规模分布式系统的跟踪系统by bigbully 2.5.1 带外数据跟踪收集 6.2 解决延迟的长尾效应 7. 其他收获 RPC服务追踪的原理与实践- SegmentFault ...

  2. python和sass区别_CSS 的预处理程序(Sass、LESS、Stylus 等)分别都有哪些优缺点?...

    三种CSS 预处理器(框架) 历史: LESS & Sass LESS是受Sass启发而开发的工具,它列出了如下开发的理由:"为什么要开发一个Sass的替代品呢?原因很简单:首先是语 ...

  3. 揭秘罗永浩直播带货幕后之师

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 2020年4月1日那一天,罗永浩没有重新定义20点. 无论是他"一个理想主义创业者"演讲的老观众,还是锤子科技新品发布会 ...

  4. Bit-Z召开全球生态联盟暨韩国战略发布会 将成立BZ资本

    11月16日,Bit-Z全球生态联盟暨韩国战略布局发布会在首尔顺利召开.本次大会是Bit-Z继集团战略升级后的首次亮相,集团CEO长顺.COO于洋分别就BZ资本成立和集团发展战略进行解析.现场精英大咖 ...

  5. SAP-R3被取代,苏宁采购平台的升级和架构演进之路

    前言 在"智慧零售大开发"的战略驱动下,2018 年苏宁新开门店超过 8000 家,目前各类门店总数已经超过 1.1 万家,在线下形成了"两大两小多专"的智慧零 ...

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

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

  7. JavaScript常见面试题

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

  8. 【观察】英特尔:视频行业最佳“合伙人”

    申耀的科技观察 读懂科技,赢取未来! 过去几年,视频行业的创新一浪接着一浪.从最早的搜狐视频.爱奇艺和优酷为代表的点播平台,到花椒.映客和斗鱼为代表的直播平台,再到快手.抖音为代表的短视频平台.可以说 ...

  9. 常见前端九十道面试题及答案-韩烨

    前言 本文是在GitHub上看到一个大牛总结的前端常见面试题,很多问题问的都很好,很经典.很有代表性.上面没有答案,我就整理了一下,从网上找了一些相关问题的答案.里面有一部分问题的答案我也没有进行考证 ...

最新文章

  1. 用python解“12-24小时制”题
  2. php捕获Fatal error错误与异常处理
  3. flex和box、flexbox高度自适应常见坑
  4. 批量设置Service Order成transferred状态
  5. 非阻塞模式(ioctlsocket)
  6. 摄影灵感|轮廓趋势,剪影以一种主要的方式回来了。
  7. pythonlambda回调函数_Python中如何借助lambda来给回调函数传参
  8. Spark2.2出现异常:ERROR SparkUI: Failed to bind SparkUI
  9. 数字电子技术基础-阎石老师版本-学习记录
  10. 「快闪群」批量成交攻略
  11. 需求挖掘的十三种方法
  12. 买服务器不做网站需要备案吗,买服务器需要备案吗
  13. 自然语言理解(三)—— 逻辑形式语言
  14. SQLServer2008 快捷键集合
  15. 算法手撕代码46~50
  16. 智慧营区管理系统软件:提供智慧营区一体化平台解决方案
  17. P4965 薇尔莉特的打字机
  18. 小米9刷twrp并安装Magisk(面具)
  19. 利用JA3和JA3S识别加密数据流量
  20. 上海交大计算机系招生名额,上海交通大学新增人工智能专业 目前有45所高校开设...

热门文章

  1. Lucene入门教程
  2. 总结:C#中跨窗体传值的几种方法
  3. 数组中a和a 的区别?
  4. 常考数据结构与算法:N皇后问题
  5. Refuses to install for WTP10
  6. Hibernate抓取策略
  7. JAVA中获取当前运行的类名,方法名,行数
  8. Windows下配置Java开发环境
  9. HDU 4831 Scenic Popularity 暴力模拟
  10. Phone重绘机制drawRect 转