如何使用Node.js操作DOM



我是javascript和Node.js的新手,但我正在努力弄清楚Node中是否有document.getElementById((的替代方案具有相同的功能。如果不能在Node中完成,是否可以创建一个纯js文件来操作DOM和一个单独的Node文件。为了获得更多信息,我正在尝试将csv行转换为json对象,然后用新信息更新网页,这就是为什么我想使用document.getElementById((.

document.getElementById()是一个存在于浏览器中的函数。nodejs中没有这样的函数。

可以获得第三方模块,该模块将解析HTML网页,创建DOM,然后允许您以编程方式访问DOM,以查看网页中的内容。Cheerio和Puppeteer是两个这样的第三方模块,每个模块都有不同级别的功能。Puppeter实际上使用Chromium浏览器引擎,甚至可以在页面中运行Javascript并生成屏幕截图。Cheerio解析HTML并允许您访问它创建的内容(无需运行Javascript(。

听起来你可能对网页的工作方式有点困惑。在最终用户的计算机上运行的浏览器加载网页。一旦加载了页面,服务器的工作就完成了。该网页仅存在于用户计算机上的浏览器中。服务器本身无法直接更改该网页。

要更改该网页(无需重新加载(,您必须在网页中(在用户浏览器中运行(具有支持Javascript的代码。例如,您可以让Javascript从网页进行Ajax调用,该调用将从服务器请求某些数据。当服务器收到该请求时,它可以生成数据并将JSON返回给浏览器。浏览器中的Javascript将接收该JSON,将其解析为Javascript对象,然后使用DOM根据接收到的数据将新对象插入到现有网页中。

请注意,对浏览器中现有网页的所有更改都是由用户浏览器中网页中运行的Javascript进行的,而不是由服务器直接进行的。服务器可以提供数据,但不能直接更改用户的网页本身。当然,用户可以请求更新页面,浏览器会请求整个页面的新版本,然后服务器可以提供一个包含不同数据的页面,但这需要重新加载整个页面。

nodejs也有模板引擎,因此当服务器生成网页时,模板引擎可以帮助您为该网页创建一组包含动态数据的HTML。这不会动态更改正在显示的浏览器中已经存在的网页。相反,它可以帮助您从头开始生成一个网页,在首次下载时将动态数据合并到网页中。在nodejs中使用Express的模板引擎示例有Pug、EJS、Nunjucks、handlebas和许多其他模板引擎。

最新更新