【发布时间】:2020-12-29 14:12:51
【问题描述】:
我将gRPC 与NodeJs 一起使用,我想要的响应是这样的(JS 格式的示例):
[
['aa1', 0, 0],
['aa2', 0, 0],
...
['aaN', 0, 0],
]
是另一个列表中的列表。类似于二维数组或矩阵。
这里的问题是我没有看到在没有键/值字段的对象中返回列表的示例,所以我不知道如何创建.proto 文件。
现在我有这样的东西:
message Response{
repeated ResponseData data = 1;
}
message ResponseData {
repeated string field1 = 1;
repeated uint32 field2 = 2;
repeated uint32 field3 = 3;
}
并进入节点文件以获取和读取数据我有类似的东西:
client.getData(request, {}, (err, response)=> {
var result = response.getDataList();
// ^^^^^^^ here I want to get the matrix
}
我也试过:
var result = response.getDataList();
result.forEach(element => {
console.log("element 1 = ",element.getField1List())
console.log("element 2 = ",element.getField2List())
console.log("element 3 = ",element.getField3List())
})
但是从element.getFieldXList() 返回的数组是空的。
我也从服务器发送这个测试矩阵:
[["0",0,0],["1",1,1],["2",2,2],["3",3,3]]
感谢任何帮助。
提前致谢。
编辑:
使用console.log(JSON.stringify(result)) 输出为:
[{"wrappers_":null,"arrayIndexOffset_":-1,"array":[[],[],[]],"pivot_":1.7976931348623157e+308,"convertedPrimitiveFields_":{}},{"wrappers_":null,"arrayIndexOffset_":-1,"array":[[],[],[]],"pivot_":1.7976931348623157e+308,"convertedPrimitiveFields_":{}},{"wrappers_":null,"arrayIndexOffset_":-1,"array":[[],[],[]],"pivot_":1.7976931348623157e+308,"convertedPrimitiveFields_":{}},{"wrappers_":null,"arrayIndexOffset_":-1,"array":[[],[],[]],"pivot_":1.7976931348623157e+308,"convertedPrimitiveFields_":{}}]
【问题讨论】:
-
你能在
getData回调中console.log(JSON.stringify(result))向我们展示输出吗? -
是的!使用
console.log()结果更新问题。 -
哦,好吧,这绝对是 grpc 服务器端的问题,因为每个
array中的元素都是空的。我以为您在 nodejs 代码中映射它时遇到问题。由于我没有使用 grpc 的经验,我无法在这里提供帮助,抱歉 :) -
哦,好的,无论如何感谢您的建议。我将查看服务器,但现在它发送此对象:
[["0",0,0],["1",1,1],["2",2,2],["3",3,3]]所以应该没问题,所以问题可能出在proto结构并尝试映射此列表...
标签: javascript node.js grpc protoc grpc-node