У меня есть Javascript, который взаимодействует с DOM с веб-сайта.
document.location.href = "https://www.example.com";
Он хорошо работает из консоли Chrome, но я хотел бы запустить этот код из командной строки. Как мне это сделать? NodeJS выдает ошибку «документ не определен».
Что будет document в Node? А какой DOM будет у вас при запуске скрипта в среде командной строки?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Чтобы использовать командную строку для внедрения кода Javascript в DOM браузера, вам действительно понадобится ... браузер, в котором выполняется реклама с кодом Javascript, имеет DOM.
Вы можете использовать что-то вроде Селен или полагаться на мостовую библиотеку, такую как https://github.com/prasmussen/chrome-cli
Когда вы запускаете код из браузера, включается DOM api, поэтому ваш код запускается соответствующим образом и находит объект местоположения с информацией о текущем документе, в котором вы находитесь. Когда вы пытаетесь запустить его из командной строки с помощью node.js, DOM api не включается, поэтому выдает ошибку «документ не определен». Node.js предназначен для вывода js-кода на стороне сервера.
То, что вы ищете, называется jsdom! https://github.com/jsdom/jsdom
Что бы вы хотели, чтобы произошло, когда вы запустите этот код?