Javascript 无法读取属性';解码';未定义的
我一直在玩弄通用的传输源规范-实时,我完全遵循谷歌文档中给出的示例: 对于JavaScript,使用我的cities local transit提要时,我不断遇到以下错误:Javascript 无法读取属性';解码';未定义的,javascript,protocol-buffers,gtfs,Javascript,Protocol Buffers,Gtfs,我一直在玩弄通用的传输源规范-实时,我完全遵循谷歌文档中给出的示例: 对于JavaScript,使用我的cities local transit提要时,我不断遇到以下错误: var feed = GtfsRealtimeBindings.FeedMessage.decode(body); ^ TypeError: Cannot read property 'decode' of undefined 我有一
var feed = GtfsRealtimeBindings.FeedMessage.decode(body);
^
TypeError: Cannot read property 'decode' of undefined
我有一个python的工作实现,它遵循了他们的示例,因此我可以确定地验证提要的格式是否正确
我正在使用以下指令运行代码:
node index.js
mypackage.json包含所有相关的依赖项,我已经使用npm安装了所需的包。
我已经到处寻找这个错误的解决方案,但没有运气。有什么建议吗?查看GitHub上的当前示例代码 () 您似乎缺少了
transit\u realtime
:
GtfsRealtimeBindings.transit_realtime.FeedMessage.decode(body);
在这个示例中,有一个指向Javascript语言绑定的github的链接。github示例与文档示例不同。我认为文件已经过时了 google文档示例中的行
var feed=GtfsRealtimeBindings.FeedMessage.decode(正文)代码>
应该是var feed=GtfsRealtimeBindings.transit\u realtime.FeedMessage.decode(正文)代码>注意包含的.transit\u realtime
或者,这可以用以下行表示:
var GtfsRealtimeBindings=require('gtfs-realtime-bindings')代码>
asvar GtfsRealtimeBindings=require('gtfs-realtime-bindings')。transit_realtime代码>
超出该行的google文档示例代码将保持原样。您需要通过引用transit_realtime属性导入gtfs实时绑定。这是对旧protobuf.js绑定生成器的更改,但这是为了分离名称空间
这行不通
cont GtfsRealtimeBindings = require('gtfs-realtime-bindings');
它将:
const GtfsRealtimeBindings = require('gtfs-realtime-bindings').transit_realtime;
现在,您可以获取feedMessage并对其进行解码
const { FeedMessage, FeedHeader, FeedEntity, VehiclePosition } = GtfsRealtimeBindings;