【问题标题】:Proto3 representing nested JSON structure表示嵌套 JSON 结构的 Proto3
【发布时间】:2017-06-01 10:57:53
【问题描述】:

我想知道如何在使用 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'

【问题讨论】:

    标签: node.js grpc proto3


    【解决方案1】:

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

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

    【讨论】:

    • 好的,我看到了 .proto 文件,但您是说要将完整的 protobuf 库以及所有 C 源文件安装到我的项目中吗?
    • 不,你只需要 .proto 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多