按express/node中的名称获取元素



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

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

看来您可能不太了解web的客户端/服务器性质。用户启动在其计算机上运行的浏览器。当你在浏览器的URL栏中键入URL并点击回车键时,它会向网络服务器(通常在互联网上的其他地方的另一台计算机(发送请求。该web服务器接收请求,查看URL的路径和URL上的任何参数,然后发回内容。

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

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

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

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

Node.js不在浏览器中运行,因此首先没有"document"元素。如果您询问如何在服务器端解析HTML文件,那就另当别论了。

最新更新