Estoy intentando conseguir jsdom a trabajar :)Node.js jsdom
Aquí está el código:
var jsdom = require("jsdom");
var request = require("request");
var fs = require('fs');
var jquery = fs.readFileSync("./jquery-1.7.2.js", 'utf-8');
request({ uri:'http://nodejs.org/dist/' }, function (error, response, body) {
if (error && response.statusCode !== 200) {
console.log('HTTP request error... '+error);
}
jsdom.env({
html: body,
scripts: [
jquery
],
done: function(errors, window) {
console.log('done');
}
});
});
Y aquí está el error:
jsdom.js:171
features = JSON.parse(JSON.stringify(window.document.implementation._fea
^
TypeError: Cannot read property 'implementation' of undefined
He comprobado si el la página se busca y si se analiza el jquery lib, lo son.
Podríamos mirar a la implementación de jsdom.js:
[snip]
exports.env = exports.jsdom.env = function() {
[snip]
window = exports.html(html, null, options).createWindow(),
features = JSON.parse(JSON.stringify(window.document.implementation._features)),
docsLoaded = 0,
[snip]
Parece que el .createWindow() no tiene éxito ...
y estoy ejecutarlo en Cloud9.
Cualquier ayuda es bienvenida.
¿Qué versión de node y jsdom? Funciona aquí con el nodo v0.6.16 y jsdom 0.2.14. (Por cierto, podría hacer 'fs.readFileSync (ruta, 'utf8')' en lugar de la llamada 'toString()' (a la que probablemente también debería pasar ''utf8'')). –
La versión del nodo es 0.6.8 y la versión de jsdom es 0.2.14. – kal3v
si el código es del lado del servidor, creo que "ventana" es solo del lado del navegador – ZiTAL