javascript - 在 express/node 中按名称获取元素
问题描述
我正在创建一个 express/node 应用程序,我想按名称获取一个元素,但是当我使用时服务器崩溃了,document.getElementsByName()
那么如何在 express/node 上按名称获取一个元素?
解决方案
拥有的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()
. 这只在浏览器中运行。
推荐阅读
- typescript - 放大键中的自动填充所有者
- visual-studio-code - 如何在 vscode 中格式化节俭文件
- apache-kafka - Kafka-sarama:生产者是否应该在空闲超时后自动重新连接?
- android - 当用户看不到活动时,前台服务 Android Q(XIAOMI 设备)中没有位置更新
- laravel - 使用 Laravel Policy 授权 Nova
- tailwind-css - 如何在 Tailwind css 中设置整页背景颜色?
- angular - HttpClient 帖子未返回预期类型
- python - 如何在 sqlalchemy 中编写松散的索引扫描查询?
- reactjs - React 挂钩上下文 - 如何使用 onclick 事件处理程序更新上下文?当我尝试时得到无效的钩子调用错误
- google-apps-script - Google Sheet Script:如何删除重复但仅适用于旧条目?