我对协议缓冲区很陌生。
我注意到grpc proto loader模块只需要加载一个proto定义文件,所以我在代码中加载了它,如下所示:
const PROTO_PATH = `${path.resolve(__dirname, '..')}${path.sep}protos${path.sep}index.proto`;
const packageDefinition = protoLoader.loadSync(PROTO_PATH, {
keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true
});
let indexProto = grpc.loadPackageDefinition(packageDefinition).index;
现在是我的索引。proto文件正在引用另一个proto文件,如下所示:
syntax = "proto3";
package index;
import public "location_updater.proto";
而我的location_updater.proto
定义如下
syntax = "proto3";
package location_updater;
service LocationUpdater{
rpc updateLocation(Location) returns LocationUpdateResponse{}
}
message Location{
string apiKey = 1;
string updateTarget = 2;
double longitude = 3;
double latitude = 4;
}
message LocationUpdateResponse{
int32 statusCode = 1;
}
当我做以下操作时:
let grpcServer = new grpc.Server();
grpcServer.addService(indexProto.location_updater.LocationUpdater.service, {
});
我收到一个错误TypeError:无法读取未定义
的属性“LocationUpdater”
如果我将location_updater.proto
的内容移动到index.proto
文件中,它可以工作,但我不希望这种行为,因为我将使用许多不同的原始文件来处理不同的业务逻辑。
我做错了什么?最好的方法是什么?。
感谢您的意见。
您需要使用includeDirs选项在搜索路径中包含目录,以便proto-loader库知道如何查找导入的文件。这些目录应该是导入路径相对于的目录。
在这种情况下,假设location\u updater。proto与index位于同一目录中。proto
,includeDirs选项应该是一个包含单路径的数组/protos。这些目录还可以用于搜索主文件,因此您可以传递一个仅为索引的proto路径。协议。
问题内容: 在将其标记为重复之前, 请阅读我的问题: 我正在尝试从子目录的文件中导入类 并且在我的课程中有()我尝试了什么: 放入main.py: 我收到错误消息: 从文件导入Klasa ImportError:没有名为“文件”的模块 当我尝试使用时: 我收到此错误: tmp = Klasa() NameError:未定义名称“ Klasa” 我在子文件夹中放了一个空格,它仍然不起作用,而我在 :
我正在使用由Visual Studio生成的gRPC服务项目。我有两个原型文件位于同一个“原型”目录中。我有一个原型,另一个原型文件有导入。它似乎找到了文件,但我无法引用来自另一个文件的任何消息。当我这样做时,我得到一个“blahblah”是未定义的错误。我已经拍摄了一些情况的屏幕截图。任何帮助都将不胜感激!
问题内容: 我在编写Python程序很有趣,但在尝试从另一个文件中的类导入函数时遇到问题。这是我的代码: 我想返回一个从另一个文件中的类调用的函数。当我导入文件时,它首先运行其中的类,然后继续运行原始代码。为什么会这样? 这是comm_system的代码: 问题答案: 将通讯系统的结尾更改为: 总是在运行的那些行会导致它在导入和执行时都运行。
问题内容: 我是React的新手。希望使用单独文件中的少量组件来开发应用程序并将其导入到我的App.js中 我尝试过但无法弄清楚我在做什么错。 这是我的html: 这是我的App.js :( 来自js /目录) 这是我的MyComp.js (来自js / components /目录) 如果我这样尝试,我什么也看不到。而如果我在App.js中创建类,则它就像一个魅力。 有什么建议我在做什么错? 问
问题内容: 如何将变量从一个文件导入到另一个文件? 示例:具有变量以及如何将其传递给? 如何将 所有 变量从一个导入到另一个? 问题答案: 将导入file1中的所有对象和方法
如何将变量从一个文件导入到另一个文件? 示例:具有变量和如何将它们传递到? 如何将所有变量从一个导入到另一个?