Ich versuche, eine lokale jquery.js zu laden in node.js NPM jsdom gemäß dem Beispiel:Kann eine lokale jquery.js in node.js laden (NPM jsdom)
var jsdom = require("jsdom");
var fs = require("fs");
var jquery = fs.readFileSync("c:/test/js/jquery.js", "utf-8"); // here it reads the jquery file from local disk
jsdom.env(
"http://somewebsite.com",
[jquery],
function (err, window) {
var $ = window.$;
console.log("HN Links");
$("td.title:not(:last) a").each(function() {
console.log(" -", $(this).text());
});
}
);
Und es gibt den Fehler unten:
window.$(".detLink")[0].text
^
TypeError: window.$ is not a function
at Object.done (C:\test.js:59:13)
at C:\nodeJS\node_modules\jsdom\lib\jsdom.js:320:18
at nextTickCallbackWith0Args (node.js:420:9)
at process._tickCallback (node.js:349:13)
es funktioniert nur, wenn ich die jquery von einigen Online-CDN abrufen:
jsdom.env(
"http://somewebsite.com",
["http://code.jquery.com/jquery.js"], // here it reads the jquery from CDN
function (err, window) {
var $ = window.$;
console.log("HN Links");
$("td.title:not(:last) a").each(function() {
console.log(" -", $(this).text());
});
}
);
Die lokale jQuery ist genau dieselbe von der CDN.
Ich versuche genau das Gegenteil zu tun. Ich möchte nicht die jquery aus Online-Quellen abrufen, ich möchte es von lokalen geladen werden. – Azevedo
Und warum wären deine Bedürfnisse nicht zufrieden, wenn du 'cheerio' benutzt hättest? –
Warum sollte ich in erster Linie Cheerio brauchen? Der Punkt dieser Frage ist, jquery ** LOCALLY ** nicht entfernt zu laden. Ich habs? – Azevedo