nodejs走thrift 无返回值,求教~~
发布于 10 年前 作者 zacard-orc 4800 次浏览 最后一次编辑是 8 年前

按例子已定义接口: struct User{ 1: string uid, 2: string uname, 3: bool usex, 4: i16 uage, } service UserService{ void add(1: User u), void adduname(1: string uname), User get(1: string uid), }

服务端代码片: 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(“MMMMM”);}, get:function(uid,callback){ console.log(“get received:”, uid); console.log(users[uid]); callback(); }

}

);

客户端代码片: client.adduname(“cccc”,function(err, res){ console.log(err); console.log(res); connection.end(); });

var cc=‘112’; client.get(cc,function(err, res){ // console.log(err); console.log(res); connection.end(); });

不知道为什么res老是收不到,请老鸟赐教~

3 回复

这个问题解决了吗

先格式化一下代码吧。

Thrift在NodeJs的实现很操蛋。

传的参数如果不是指定的构造函数,那么报一个让你莫名其妙的错误。

如果服务端返回的值不符合类型定义,那么请求会一直挂起,没有返回值,也不会报错。你看看是不是因为这个。

来自酷炫的 CNodeMD

你服务端callback并没有返回值,别折腾官方那个包了,坑太多,用这个吧https://github.com/leaves4j/n-thrift From Noder

回到顶部