node.js - Node gRPC (proto3) how to convert AsObject type back to gRPC class
问题描述
I'm using node to communicate with a gRPC server, here is an example of generated request ts
export class GetUserByFQDNRequest extends jspb.Message {
getEnvironmentId(): string;
setEnvironmentId(value: string): void;
getFqdn(): string;
setFqdn(value: string): void;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): GetUserByFQDNRequest.AsObject;
static toObject(includeInstance: boolean, msg: GetUserByFQDNRequest): GetUserByFQDNRequest.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: GetUserByFQDNRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): GetUserByFQDNRequest;
static deserializeBinaryFromReader(message: GetUserByFQDNRequest, reader: jspb.BinaryReader): GetUserByFQDNRequest;
}
export namespace GetUserByFQDNRequest {
export type AsObject = {
environmentId: string,
fqdn: string,
}
}
and we are creating and sending a request in the following way:
const request = new users.GetUserByFQDNRequest();
request.setEnvironmentId(environmentId);
request.setFqdn(fqdn);
usersServiceClient.getUserByFQDN(request, setTimeout(timeoutMilliseconds), (err: ServiceError | null, response: users.GetUserByFQDNResponse)
I'm looking for a way to use the RequestType.AsObject type to create a request, for example:
const request: GetUserByFQDNRequest.AsObject = {environmentId: "envID", fqdn: "fqdn"};
but unfortunately I can't use it in my usersServiceClient.getUserByFQDN since I'm getting the following error:
TS2345: Argument of type 'AsObject' is not assignable to parameter of type 'GetUserByFQDNRequest'
in the generated ts file there is a static method which convert the request to AsObject:
static toObject(includeInstance: boolean, msg: GetUserByFQDNRequest): GetUserByFQDNRequest.AsObject;
but sadly not the other way around.
Is there any way to convert AsObject to a request class without building a converter for each type of a gRPC request?
解决方案
推荐阅读
- html - 如何防止用户从 CSS 的下拉菜单中选择默认值?
- python - 无法在不保存数据库 Django 的情况下将临时数据添加到实例
- gsoap - gsoap calc++ 示例以错误告终
- c# - 验证配置文件 C# 的内容
- python - Python 多处理指南似乎有冲突:共享内存还是泡菜?
- bash - 预克隆/预初始化 git 挂钩?
- acumatica - 导入/复制的机会转移一行
- angular - ngxRestangular 中的解决方法 Angular url 参数错误
- html - 如何禁用 UL 样式?
- python-2.7 - Starteck KVM to USB crashcart 安装在 Ubuntu 18.04 python 问题上