#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 так, как это делает браузер.
Я попытался это исправить:
- с помощью ESLint настройка: env {browser: true}
- устанавливаю пакет 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 и даже может делать такие вещи, как делать скриншоты реально отображаемой страницы.