【发布时间】:2018-07-19 18:34:51
【问题描述】:
我的 Proto 文件看起来像这样 -
message Todos {
repeated Todo todos = 1;
}
message Todo {
int32 id = 1;
string name = 2;
bool done = 3;
}
当我从服务器发送 {todos: [...]} 时它运行良好,但在直接发送数组时得到一个空对象 {}。
服务器
getAll(_, callback) {
console.log(todos);
return callback(null, { todos });
}
客户
client.getAll({}, function (err, res) {
if (err) {
return console.log(err);
}
console.log('todos: ');
return console.log(res);
});
版本 -
- @grpc/proto-loader - ^0.1.0
- grpc - ^1.13.0
【问题讨论】:
-
您是说如果您通过
{todos}而不是{todos: todos},您会得到不同的结果,还是这两种情况之间还有其他区别?todos是空数组吗?如果是,您是否尝试过按照this GitHub issue 中的建议? -
@murgatroid99 感谢您的建议,但我已经检查了我的服务器,并且 todos 是一个非空数组。当发送 { todos } 或 { todos : todos } 时,我的客户得到一个对象。但是当我发送 todos(作为直接数组)时,它会得到一个空对象。
-
这可能是因为我如何定义原型吗?
标签: javascript node.js protocol-buffers grpc