Spiderable for client-side API based webapp


I’m trying to make my webapp spiderable (using the package of the same name). However I use client-side REST API requests for all rendering. Since (if I understand this correctly) spiderable attempts to run the rendering code client-side, I get some errors, possibly due to my async requests though jQuery’s $.ajax().

More specifically I get this error:

[] Error: Meteor code must always run within a Fiber. Try wrapping callbacks that you pass to non-Meteor libraries with Meteor.bindEnvironment.
[]     at Object.Meteor._nodeCodeMustBeInFiber (packages/meteor/dynamics_nodejs.js:9:1)
[]     at [object Object]._.extend.get (packages/meteor/dynamics_nodejs.js:21:1)
[]     at [object Object].RouteController.lookupOption (packages/iron_router/lib/route_controller.js:66:1)
[]     at new Controller.extend.constructor (packages/iron_router/lib/route_controller.js:26:1)
[]     at [object Object].ctor (packages/iron_core/lib/iron_core.js:88:1)
[]     at Function.Router.createController (packages/iron_router/lib/router.js:201:1)
[]     at Function.Router.dispatch (packages/iron_router/lib/router_server.js:39:1)
[]     at Object.router (packages/iron_router/lib/router.js:15:1)
[]     at next (/bundle/bundle/programs/server/npm/webapp/node_modules/connect/lib/proto.js:190:15)
[]     at packages/spiderable/spiderable_server.js:128:1

Could anyone give me some pointers on how to make sure that it is spiderable by running most of the rendering client-side through a REST API?

1 Like