Как динамически создать прото-схему gRPC в nodejs?
Загрузка файлов.proto может быть выполнена путем указания пути к файлу (PROTO_PATH)
var packageDefinition = protoLoader.loadSync(
PROTO_PATH,
{keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true
});
Как сделать это динамически в node.js? Я хочу построить прототип схемы (типы данных и функции) во время выполнения.
1 ответ
Решение
@grpc/proto-loader
библиотека специально сделана для загрузки .proto
файлы и не поддерживает динамическое создание протобуф-сообщений или типов сервисов во время выполнения.
Тем не менее, Protobuf.js поддерживает построение типов отражений protobuf во время выполнения ( подробности см. В его README), и его можно использовать для создания PackageDefinition
явно использовать объект, а затем загрузить его в библиотеку grpc. Определения типов в этом документе могут быть более понятными.