zerorpc:如何将字符串数据从 python 转换为节点
zerorpc: how to convert string data from python to node
我需要从 nodejs and getting back the result. I found the zerorpc 库中调用一个 python 脚本,这似乎很合适。 python 脚本 returns 一个字符串数组,但在节点中我得到了二进制数据的对象。
这是 python zerorpc 服务器:
# python zerorpc server
import zerorpc
class HelloRPC(object):
def test(self):
return ["A", "B", "C"]
server = zerorpc.Server(HelloRPC())
serrver.bind("tcp://0.0.0.0:4242")
server.run()
这是节点zerorpc客户端:
// nodejs zerorpc client
var zerorpc = require("zerorpc")
var client = new zerorpc.Client();
client.connect("tcp://127.0.0.1:4242");
client.invoke("test", function(error, response, more) {
if (response) {
for (var i = 0; i < response.length; i++) {
console.log(typeof response[i], response[i])
}
}
}
这给出了这个输出:
object <Buffer 41>
object <Buffer 42>
object <Buffer 43>
在 nodejs 中将这些对象转换为字符串的最佳方法是什么?
节点 JS 缓冲区 class 有 toString 方法
strings[i] = response[i].toString("utf8")
查看方法:
https://nodejs.org/api/buffer.html#buffer_buf_tostring_encoding_start_end
我需要从 nodejs and getting back the result. I found the zerorpc 库中调用一个 python 脚本,这似乎很合适。 python 脚本 returns 一个字符串数组,但在节点中我得到了二进制数据的对象。
这是 python zerorpc 服务器:
# python zerorpc server
import zerorpc
class HelloRPC(object):
def test(self):
return ["A", "B", "C"]
server = zerorpc.Server(HelloRPC())
serrver.bind("tcp://0.0.0.0:4242")
server.run()
这是节点zerorpc客户端:
// nodejs zerorpc client
var zerorpc = require("zerorpc")
var client = new zerorpc.Client();
client.connect("tcp://127.0.0.1:4242");
client.invoke("test", function(error, response, more) {
if (response) {
for (var i = 0; i < response.length; i++) {
console.log(typeof response[i], response[i])
}
}
}
这给出了这个输出:
object <Buffer 41>
object <Buffer 42>
object <Buffer 43>
在 nodejs 中将这些对象转换为字符串的最佳方法是什么?
节点 JS 缓冲区 class 有 toString 方法
strings[i] = response[i].toString("utf8")
查看方法: https://nodejs.org/api/buffer.html#buffer_buf_tostring_encoding_start_end