簡體   English   中英

通過命令行在無瀏覽器的jQuery中使用node.js

[英]Using node.js with browserless jQuery via the command line

我正在嘗試通過命令行在下面運行此腳本

var argv = require('optimist').argv,
$ = require('jquery'),
fs = require('fs');
var file = argv._[0];
var html = fs.readFileSync(file, 'UTF-8');
$(html).find('p').each(function(index) {
var content = $(this).html();
console.log('Paragraph ' + (index + 1) + ': ' + content);
}); //script.js

命令是$ node script.js page.html ,其中page.html是參數

我得到的錯誤是:

./node_modules/jquery/dist/jquery.js:29
                throw new Error( "jQuery requires a window with a document" );
Error: jQuery requires a window with a document
at module.exports (./node_modules/jquery/dist/jquery.js:29:12)
...

我正在使用jquery-2.1.3。 我知道這曾經曾經起作用過,但是看起來有些變化。

另外,我確實按照http://rkulla.blogspot.com/2014/04/using-browserify-with-jquery-backbonejs.html上的說明進行操作,但是我仍然遇到相同的錯誤。

修復此錯誤的任何幫助將不勝感激。 非常感謝你!

看到這個答案 jQuery的npm軟件包不再包含jsdom ,它提供了在服務器上使用jQuery所需的DOM環境。

另一方面,您可以只使用cheerio (服務器的jQuery實現)來解析html並使用jQuery的選擇器。

var argv = require('optimist').argv,
$ = require('cheerio'),
fs = require('fs');

var file = argv._[0];
...

我一生都無法安裝jsdom ,所以我放棄了,但是cheerio (編輯package.jsonnpm install運行非常順利)解決了這個問題(請參見上面的代碼修改)。 謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM