2017-06-01 68 views
0

我想知道如何用Node.js在我的gRPC實現中表示可變大小的JSON結構。我有一個GRPC服務,我想收到以下結構的消息:Proto3表示嵌套的JSON結構

{ 
    "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

您需要將副本添加到您的項目源中。 Struct.proto默認不帶有protoc編譯器。

如果您有完整的protobuf資源,您可以使用指向google/protobuf/目錄的-I include指令從您的項目中引用它們。

+0

好的我看到.proto文件,但是你說要將全部的protobuf庫安裝到我的項目中,並帶有所有C源文件? – ddibiase

+0

不,您只需要.proto文件。 –