問題タブ [grpc-node]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - loadSync メソッドが使用するのと同じオプションに基づいて pb ファイルを生成する方法はありますか?
動的コード生成を使用する場合、次を.proto
使用してファイルをロードできます。
フィールド名を保持するオプションを設定keepCase
できますが、キャメルケースに変更しないでください。enums
オプションなので、列挙型を表す文字列を使用できます。
現在、静的コード生成を使用しています。上記の 2 つの問題に直面して、これが私のサービスのメソッド実装です。
私が直面している問題は次のとおりです。
- proto3 の使用時にデフォルト値を設定できませ ん。
page
引数のデフォルト値を1
、NOTに設定したいです0
。 - 列挙型を数値から文字列表現に手動で変換する必要があります。
- RESTful API 応答からのフィールドはスネーク ケースですが
protoc
、プラグインはキャメル ケース フィールドを持つモデルを生成しますgrpc_tools_node_protoc
。grpc_tools_node_protoc_ts
だから私はケースを維持したい。 - ご覧のとおり、水分補給プロセスは便利ではなく、退屈です。フィールドの値を 1 つずつ設定するには、セッターを呼び出す必要があります。
grpc - ヘルスチェック プロトコルについて混乱している
以下のドキュメント、ソースコード、および問題を読みました。
- https://github.com/grpc/grpc/blob/master/doc/health-checking.md
- https://github.com/grpc/grpc-node/blob/master/packages/grpc-health-check/test/health_test.js
- https://github.com/grpc/grpc/issues/10428
例を挙げて説明しようとします:
以下の点がよくわかりません。
statusMap
サービス名は、プロトコル バッファ ファイル内のサービス名と同じにする必要がありますか? または、サービス名を任意に指定することもできます。その場合、サービス名はプロトコル バッファで定義されたサービスにどのようにマップされますか?
ヘルスチェック プロトコルから:
サーバーはすべてのサービスを手動で登録し、個々のステータスを設定する必要があります
なぜ手動で登録する必要があるのですか? サービス コードを生成できる場合、なぜ grpc は にサービス名を自動的に登録するのに役立たないのでしょ
statusMap
うか? (100 サービスのステータスを 1 つずつ設定することを想像してください)サービス ステータスはハード コードであり、アプリケーションの実行時に変更することはできません。設定ミスなどの理由で実行時にサービスを利用できない場合、ダウンストリーム サービスは利用できませんが、サービスのステータスは常にサービスを提供しています (ハードコードであるため)。そうであれば、ヘルス チェックの意味は何ですか?
RESTful API の場合、サーバー全体が正常に動作していることを確認するための/health-check
またはAPI を提供できます。/ping
angularjs - ngx GRPC エラー HTTP/2 の解析に失敗しました 'P' (80) がバイト 0 で 'O' (79) を取得しました
正常に動作している GRPC サーバーがあります (BloomRPC を使用してテスト済み)。Angular と ngx-grpc で構築されたフロントエンドがあります。grpc クライアントからリクエストを送信すると、サーバー側で次のエラーが発生します。何が問題なのですか?