ReferenceError: document is not defined - это ошибка, которая возникает, когда вы пытаетесь обратиться к объекту document в среде Node.js. Это происходит потому, что объект document является частью браузерного API и не доступен в среде Node.js, которая предназначена для выполнения JavaScript-кода на сервере.
К счастью, есть несколько способов обойти эту ошибку, в зависимости от того, что вы пытаетесь сделать:
1. Если вы пытаетесь получить доступ к DOM-элементам, то вам необходимо использовать специфические для Node.js библиотеки, такие как jsdom или cheerio. Эти библиотеки позволяют вам имитировать DOM-среду в среде Node.js и выполнять манипуляции с элементами DOM.
Пример использования jsdom:
const { JSDOM } = require('jsdom'); // Создаем виртуальное окружение DOM const dom = new JSDOM('<!DOCTYPE html><p>Hello world</p>'); // Получаем доступ к элементам DOM const document = dom.window.document; const paragraph = document.querySelector('p'); console.log(paragraph.textContent); // Выводит 'Hello world'
2. Если вы пытаетесь выполнить какие-либо манипуляции DOM для клиентской стороны и не нуждаетесь в полной среде DOM, то вам может потребоваться использовать библиотеку, такую как cheerio. Cheerio - это библиотека, которая предоставляет удобный API для работы с HTML-документами, используя селекторы CSS.
Пример использования cheerio:
const cheerio = require('cheerio'); const html = '<p>Hello world</p>'; // Загружаем HTML в cheerio const $ = cheerio.load(html); // Выполняем манипуляции с DOM const paragraph = $('p').text(); console.log(paragraph); // Выводит 'Hello world'
3. Если вам не нужны никакие манипуляции с DOM и просто хотите запустить скрипт Node.js, то вам достаточно удалить любой код, который взаимодействует с объектом document. Это может потребоваться, когда вы переиспользуете код, написанный для выполнения в браузере, в среде Node.js.
В любом случае, обратите внимание, что Node.js не предназначен для работы с DOM, и вам может потребоваться изменить свой подход, чтобы достичь поставленных целей без использования объекта document.