Del código de ejemplo en la documentación de la biblioteca gtfs-realtime-bindings,
Traté de poner una lógica similar dentro de mi enrutador pero no pude sacar el resultado de la solicitud ()
route.get('/', (req, res) => { const data = []; request(requestSettings, function (error, response, body) { if (!error && response.statusCode == 200) { const feed = GtfsRealtimeBindings.transit_realtime.FeedMessage.decode(body); feed.entity.forEach(function(entity) { if (entity.tripUpdate) { data.push(entity.tripUpdate); } }); } res.status(200).json( data ); }); // empty array returns Luego traté de usar axios, pero decode() genera "Error: búfer ilegal"
const realtimeRequest = () => { axios.get('https://opendata.hamilton.ca/GTFS-RT/GTFS_TripUpdates.pb') .then(function (body) { const feed = GtfsRealtimeBindings.transit_realtime.FeedMessage.decode(body.data); // body.data looks like this '\x03436\x12\x041219 ����\x06' return feed; }).catch(error => console.log(error)); } route.get('/', (req, res) => { realtimeRequest() .then(() => { res.status(200).json( data ); }) } /** Error: illegal buffer at create_typed_array (/node_modules/protobufjs/src/reader.js:47:15) at create_buffer (/node_modules/protobufjs/src/reader.js:69:19) at Function.create_buffer_setup (/node_modules/protobufjs/src/reader.js:70:11) at Function.decode (/node_modules/gtfs-realtime-bindings/gtfs-realtime.js:134:34) **/