首页 > 解决方案 > 在 express/node 中按名称获取元素

问题描述

我正在创建一个 express/node 应用程序,我想按名称获取一个元素,但是当我使用时服务器崩溃了,document.getElementsByName()那么如何在 express/node 上按名称获取一个元素?

标签: javascripthtmlnode.jsexpress

解决方案


拥有的document对象document.getElementsByName()是在浏览器中运行的 Javascript 可以使用的东西。在 nodejs 中运行的 Javascript 不能使用它,因为文档存在于浏览器中,而不是 nodejs 中。

看来您可能不太了解 Web 的客户端/服务器性质。用户启动在其计算机上运行的浏览器。当您在浏览器的 URL 栏中键入 URL 并按 Enter 键时,它会向 Web 服务器(通常在 Internet 上的其他地方关闭的另一台计算机)发送请求。该 Web 服务器接收请求,查看 URL 的路径是什么以及 URL 上的任何参数,然后发回内容。

如果 URL 表示的是 HTML 页面,则浏览器(在最终用户的计算机上运行)获取该 HTML 页面,对其进行解析并将其显示在浏览器中。如果对其他资源(例如图像或脚本)有任何引用,则浏览器也会向服务器请求这些资源。

如果网页中有 Javascript,则浏览器会在浏览器中运行该 Javascript。document.getElementsByName()可以使用的正是这个 Javascript 。这不是 nodejs Javascript,这是用于在网页中运行的 Javascript。

人们偶尔会感到困惑的是网页Javascript实际上存在于服务器的硬盘驱动器的某个地方。当浏览器请求该脚本或该网页时,nodejs 服务器获取该请求并将该网页或脚本发送回浏览器。因此,虽然网页脚本存在于 nodejs 服务器上,但它实际上并没有在那里运行 - 那只是它的存储位置,以便可以在请求时将其发送到浏览器。在浏览器中运行时,只能使用浏览器API,不能使用nodejs API。

您的 nodejs 服务器中的 Javascript 本身在服务器上运行。它只能使用 nodejs API,不能使用浏览器 API。所以,这就是为什么 nodejs Javascript 不能使用document.getElementsByName(). 这只在浏览器中运行。


推荐阅读