Получить элемент по имени в express/узле

#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 не работает в изолированной среде. Он просто запускается на сервере, который является совершенно другим компьютером и средой, отличной от браузера.