Ошибка ссылки: документ не определен, nodejs не понимает DOM

#javascript #node.js #dom #eslint

#javascript #node.js #dom #eslint

Вопрос:

Я пытаюсь взаимодействовать с API datamuse с помощью запроса fetch()GET и отобразить его в DOM. Но когда я запускаю node index.js я получаю эту ошибку: ошибка ссылки: документ не определен.

 const submitButton = document.querySelector('#submit');
  

я погуглил это и узнал, что nodejs не понимает DOM так, как это делает браузер.

Я попытался это исправить:

  1. с помощью ESLint настройка: env {browser: true}
  2. устанавливаю пакет JSdom, затем получаю сообщение об ошибке jsdom not defined

Не удалось разобраться, пожалуйста, помогите

Комментарии:

1. Узел. JS не понимает DOM, потому что его нет.

Ответ №1:

Node.js это полностью отличная от браузера среда Javascript. Ему доступна библиотека функций, отличная от библиотеки браузера. Например, браузер имеет возможность анализировать HTML и представлять DOM API, и у него есть window объект. Node.js это вообще не браузер, поэтому у него нет этих функций. Вместо этого у него есть сети TCP и HTTP, доступ к файловой системе и т.д… те вещи, которые вы обычно используете в серверной реализации.

Если, из node.js вы пытаетесь получить веб-страницу с какого-либо другого сервера, а затем проанализировать этот HTML, а затем понять или манипулировать элементами DOM на этой веб-странице, для этого вам понадобится библиотека. Такие библиотеки, как cheerio и puppeteer, являются популярными инструментами для этого. Приветствую, анализирует HTML, но не запускает Javascript на странице, а затем предлагает API, подобный jQuery, для доступа к DOM. На самом деле Puppeteer запускает движок браузера chromium для анализа страницы и запуска Javascript на странице, чтобы предоставить вам полностью репрезентативный DOM и даже может делать такие вещи, как делать скриншоты реально отображаемой страницы.