Node.js Jsdom returning [Error: socket hang up] code: 'ECONNRESET' }

Trying to use jsdom under nodejs and receiving this error:

[Error: socket hang up] code: 'ECONNRESET' }

Using NodeJs v0.8.20, Ubuntu 12.04

   var jsdom = require("jsdom");
    jsdom.env({
                    html: 'http://www.google.com',
                    scripts: ['http://code.jquery.com/jquery.js'],
                    done: function (errors, window) { console.log(errors); }
   });

http://clock.co.uk/tech-blogs/preventing-http-raise-hangup-error-on-destroyed-socket-write-from-crashing-your-nodejs-server

basically there was a bug where socket hang up errors were suppressed, but in node 0.8.20 it is no longer suppressed. however, most modules don't listen for that error event yet.

so... downgrade your node.js version and wait until jsdom fixes it, or use domains. pretty sure the issue is with jsdom using an older version of request. or you can just not use the HTTP parts of JSDOM.

It means that the other side unexpectedly shut down the connection.

When I try to run your script, I get this:

/Users/isaacs/dev/js/x/node_modules/jsdom/lib/jsdom.js:178
    features   = JSON.parse(JSON.stringify(window.document.implementation._fea
                                                          ^
TypeError: Cannot read property 'implementation' of undefined
    at exports.env.exports.jsdom.env.processHTML (/Users/isaacs/dev/js/x/node_modules/jsdom/lib/jsdom.js:178:59)
    at Request.exports.env.exports.jsdom.env [as _callback] (/Users/isaacs/dev/js/x/node_modules/jsdom/lib/jsdom.js:283:9)
    at Request.init.self.callback (/Users/isaacs/dev/js/x/node_modules/jsdom/node_modules/request/main.js:127:22)
    at Request.EventEmitter.emit (events.js:99:17)
    at Request.<anonymous> (/Users/isaacs/dev/js/x/node_modules/jsdom/node_modules/request/main.js:767:16)
    at Request.EventEmitter.emit (events.js:126:20)
    at IncomingMessage.Request.start.self.req.self.httpModule.request.buffer (/Users/isaacs/dev/js/x/node_modules/jsdom/node_modules/request/main.js:729:14)
    at IncomingMessage.EventEmitter.emit (events.js:126:20)
    at IncomingMessage._emitEnd (http.js:366:10)
    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)