#javascript #html #node.js #express
Вопрос:
Я создаю приложение express/node, и я хочу получить элемент по имени, но сервер аварийно завершает работу, когда я его использую document.getElementsByName()
, так как я могу получить элемент по имени на express/node?
Комментарии:
1. Узел работает на сервере, элементы документа находятся на клиенте.
Ответ №1:
document
Объект, который имеет document.getElementsByName()
, — это то, что может использовать Javascript, запущенный в браузере. Javascript, работающий в nodejs, не может использовать это, поскольку документ находится в браузере, а не в nodejs.
Похоже, что вы, возможно, не совсем понимаете клиентско-серверную природу Интернета. Пользователь запускает браузер, который работает на его компьютере. Когда вы вводите URL-адрес в строку URL-адреса в браузере и нажимаете enter, он отправляет запрос на веб-сервер (другой компьютер, обычно находящийся где-то в другом месте в Интернете). Этот веб-сервер получает запрос, проверяет путь к URL-адресу и любые параметры URL-адреса, а затем отправляет содержимое обратно.
Если URL-адрес представлял собой HTML-страницу, то браузер (работающий на компьютере конечного пользователя) берет эту HTML-страницу, анализирует ее и отображает в браузере. Если есть какие-либо ссылки на другие ресурсы, такие как изображения или сценарии, браузер также запрашивает их у сервера.
Если на веб-странице есть Javascript, то браузер запускает этот Javascript в браузере. Именно этот Javascript document.getElementsByName()
можно использовать. Это не nodejs Javascript, это Javascript, предназначенный для запуска на веб-странице.
Где люди иногда путаются, так это в том, что Javascript-страница на самом деле где-то находится на жестком диске сервера. Когда браузер запрашивает этот сценарий или эту веб-страницу, сервер nodejs получает этот запрос и отправляет веб-страницу или сценарий обратно в браузер. Таким образом, хотя скрипт веб — страницы находится на сервере nodejs, на самом деле он там не запускается-просто он хранится там, чтобы его можно было отправить в браузер по запросу. Когда он запускается в браузере, он может использовать только API браузера, а не API nodejs.
Javascript на вашем сервере nodejs сам работает на сервере. Он может использовать только API nodejs, а не API браузера. Итак, вот почему nodejs Javascript не может использоваться document.getElementsByName()
. Это работает только в браузере.
Ответ №2:
Node.js не запускается в браузере, поэтому в первую очередь нет элемента «документ». Если вы спрашиваете, как проанализировать HTML-файл на стороне сервера, это другой вопрос.
Комментарии:
1. Эм, nodejs не работает в изолированной среде. Он просто запускается на сервере, который является совершенно другим компьютером и средой, отличной от браузера.