I’m using the jsdom node.js module for an app that does some web scraping to get some data it needs. This works perfectly fine when I run locally.
When I push the application to cloudfoundry however, it crashes. The log is as follows:
====> /logs/stderr.log <====
/var/vcap/data/dea/apps/caretogethersandbox-0-8b20af9255bbf552d0f490cb60d0df55/app/node_modules/jsdom/lib/jsdom.js:171
features = JSON.parse(JSON.stringify(window.document.implementation._fea
^TypeError: Cannot read property ‘implementation’ of undefined
Is there something I’m missing here? I’m pretty stumped. I know the code I’ve written works fine, it just seems to be an issue between the module and cloudfoundry.
I was able to reproduce this problem pretty easily. It seems jsdom relies on a native compiled library called Contextify (https://github.com/brianmcd/contextify) and also has some bindings to Python from what I can gather. These are not supported by Cloud Foundry at present. There is a similar question on Github about this problem;
https://github.com/tmpvar/jsdom/issues/436
The last post at the time of writing this suggests the use of two 100% JS libraries called Domino and Zepto Node, they may well be worth checking out.