我正在尝试按照安装指南在 Node.JS 服务器中实现gRPC 网关。
这些步骤是为之编写的,golang
但我尝试在 Node.JS 中执行。
我找到了这个响应,还有一些像这个这样的包,所以可以在 node.js 中实现。
阅读“安装指南”后,主要问题似乎是获取二进制文件:
- protoc-gen-grpc-网关
- protoc-gen-openapiv2
- protoc-gen-go
- protoc-gen-go-grpc
我已经从这里下载了前两个二进制文件,所以问题可能是最后两个。
我假设go
来自golang
所以我必须搜索类似的东西protoc-gen-node-grpc
。我已经看过这个npm 包,但是,我想尽可能地自己实现。我不想依赖第三方。
在这一点上,我必须首先将二进制文件放入我的路径,但没有最后两个。
一旦定义了 gRPC 服务,下一步就是生成 gRPC 存根。我有这条线:
RUN protoc -I=. mygrpc.proto --js_out=import_style=commonjs,binary:./my/folder/ --grpc-web_out=import_style=commonjs,mode=grpcwebtext:./my/folder/
这可以生成文件。我不知道我是否必须使用--js_out
并--grpc-web_out
创建客户端和服务文件。
然后,下一步是使用protoc-gen-grpc-gateway
.
我这样做(如指南所说):
protoc -I=./my/path/ myproto.proto \
--grpc-gateway_out ./my/path/ \
--grpc-gateway_opt logtostderr=true \
--grpc-gateway_opt paths=source_relative \
--grpc-gateway_opt generate_unbound_methods=true
这会生成一个.go
文件:myproto.pb.gw.go
.
进入文件说:
// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT.
// source: myproto.proto
/*
Package myproto is a reverse proxy.
It translates gRPC into RESTful JSON APIs.
*/
因此,我假设步骤已正确完成,但是:如何将其执行到我的 Node.JS 服务器中?
我有一个使用 Express API 的节点项目,我想使用 grpc-gateway 而不是 express API 端点......但我只有一个.go
文件。
我的原型版本是:
库协议 3.14.0
提前致谢。