Основная ошибка при использовании jquery с nodejs

Я пытаюсь использовать некоторый jquery в моем проекте, и как только я попытался использовать его, я наткнулся на ошибку в скопированном коде и не могу получить какую-либо помощь Google по ней.

 var jquery = require('jquery');
 var $ = jquery.create();
                ^
 TypeError: Object function ( w ) {
     if ( !w.document ) {
          throw new Error( "jQuery requires a window with a document" );
     }
     return factory( w );
 } has no method 'create'

Длинная история:

Я пытаюсь получить открытый текст из некоторого html, который у меня есть.

Я надеюсь использовать функцию .text(), которая, мол, делает это.

Мой итоговый код должен быть:

console.log($(data).text());

Ответ 1

Вы не можете использовать jquery на сервере, поскольку он явно требует window и window.document. Попробуйте cheerio

Ответ 2

попробовать:

var jsdom = require("jsdom").jsdom;
var markup = '<html><body><h1 class="example">Hello World!</h1><p class="hello">Heya Big World!</body></html>';
var doc = jsdom(markup);
var window = doc.parentWindow;
var $ = require('jquery')(window)
console.log($('.example').text());

В принципе, вы можете использовать модуль jsdom для создания DOM из вашей разметки, а затем вы можете использовать его так же, как с jquery в браузере.

Ответ 3

У меня была та же проблема. Чтобы решить эту проблему, я установил более старую версию jquery: npm install [email protected]

Ответ 4

Он работал очень хорошо в течение многих месяцев. Но потом они что-то изменили, а теперь нет. Я мог нормально работать с jquery без окна, и он отлично работал на node js. Но по какой-то причине не с последней версией. Очень странно.

То, что мы пытаемся сделать, это просто:

$= require ( "jquery" ); $ ( "..). find (". message "). html (" Hello World! ");