2

我需要从nodejs调用 python 脚本并取回结果。我发现zerorpc库似乎很合适。python脚本返回一个字符串数组,但在节点中我得到了二进制数据对象。

这是 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中将这些对象转换为字符串的最佳方法是什么?

4

1 回答 1

2

Node JS Buffer 类有 toString 方法

strings[i] = response[i].toString("utf8")

方法见: https ://nodejs.org/api/buffer.html#buffer_buf_tostring_encoding_start_end

于 2016-10-06T23:08:42.263 回答