protoloader 和从 grpc 生成的 .js 文件之间的区别

问题描述

我是 GRPC 和 nodejs 的初学者。 我第一次使用 protoloader 从 proto 加载我的服务。然后,我想切换到使用 grpc 生成文件:在我的情况下,我有:comment_pb.js,所以我将此代码替换为:

    import protoLoader from '@grpc/proto-loader';
    
    const packageDeFinition = protoLoader.loadSync('../../../protos/comment.proto',{
        keepCase: true,longs: String,enums: String,arrays: true
      });
    
      //pass proto in grpc 
      var commentProto = grpc.loadPackageDeFinition(packageDeFinition);
    

与:

    import protoLoader from './proto/comment_pb.js';

我不知道这两种方法间的区别是什么,这是否会更改其余代码?有任何关于此的有用链接

解决方法

gRPC Node Basics tutorial 经历了一个 dynamic_codegen 示例,但也有一个非常相似的 static_codegen 示例。通读它们并比较它们以了解静态方法和动态方法的区别应该会很有用。