Proto3代表嵌套的JSON结构

时间:2017-06-01 10:57:53

标签: node.js grpc proto3

我想知道如何使用Node.js在我的gRPC实现中表示可变大小的JSON结构。我有一个grpc服务和一条消息,我希望收到以下结构:

{
  "Key": "Value",
  "Nested": { ... }
}

这是我的定义:

syntax = "proto3";

service Users {
  rpc RetrieveMeta (RetrieveMetaRequest) returns (RetrieveMetaResponse) {}
  rpc UpdateMeta   (UpdateMetaRequest)   returns (UpdateMetaResponse)   {}
}
message RetrieveMetaRequest {

}
message RetrieveMetaResponse {

}

我已经读过你可以通过导入结构定义来实现,但是当我这样做时,我得到一个文件未找到错误,因为它在当前目录中执行查找:

import "google/protobuf/struct.proto";

抛出:

Users/ddibiase-macbook/Projects/dfx-api/node_modules/protobufjs/dist/protobuf.js:4720
                            throw Error("failed to import '"+importFilename+"' in '"+filename+"': file not found");
                            ^

Error: failed to import '/Users/ddibiase-macbook/Projects/dfx-api/protos/struct.proto'

1 个答案:

答案 0 :(得分:1)

您需要将副本添加到项目源。默认情况下,Struct.proto不附带protoc编译器。

如果您拥有protobuf的完整源代码,则可以使用指向google/protobuf/目录的-I include指令从项目中引用它们。