Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可以在NodeJS中操作DOM吗?_Javascript_Html_Css_Node.js_Ajax - Fatal编程技术网

Javascript 可以在NodeJS中操作DOM吗?

Javascript 可以在NodeJS中操作DOM吗?,javascript,html,css,node.js,ajax,Javascript,Html,Css,Node.js,Ajax,我使用vanilla js、ajax和DOM操作构建了一个random quotes应用程序,我想知道是否可以使用node/express在后端执行js位。然而,我似乎不知道DOM操作(如单击按钮生成新报价)是否可以通过节点JS完成?DOM不是JS的一部分。它是HTML的一部分,因此需要浏览器的上下文才能使用它 您要做的是在浏览器中继续DOM操作,并对节点后端进行API调用。这将使用类似于代理数据的东西,然后通过适当地更新应用程序的DOM来响应数据。您可以使用库(如libxmljs或cheeri

我使用vanilla js、ajax和DOM操作构建了一个random quotes应用程序,我想知道是否可以使用node/express在后端执行js位。然而,我似乎不知道DOM操作(如单击按钮生成新报价)是否可以通过节点JS完成?

DOM不是JS的一部分。它是HTML的一部分,因此需要浏览器的上下文才能使用它


您要做的是在浏览器中继续DOM操作,并对节点后端进行API调用。这将使用类似于代理数据的东西,然后通过适当地更新应用程序的DOM来响应数据。

您可以使用库(如libxmljs或cheerio)将HTML解析为带有Node.js的DOM,然后允许您操作结果


您不能使用Node.js中运行的代码来操作浏览器构建的DOM,也不能直接处理在浏览器中呈现的按钮上的单击,因为按钮和DOM都将在浏览器中,而不是Node.js程序中。

您可以尝试使用一些模板呈现语言,如(ejs、Handlebar…)使用普通javascript代码

有许多模板引擎操作可用于生成服务器端呈现页面。
使用模板引擎,您可以在向客户端提供服务之前提供html和操作DOM。

好吧,这里的Node/Express是一个后端工具,而您的浏览器(vanilla JS将运行的地方)是前端

后端可以以
HTML/JSON/XML
甚至纯文本的形式生成输出!。但类似地,由于我们无法更改函数返回的值,后端一旦输出某些内容就无法更改

这里使用的是前端工具,它们能够更改您的案例中的DOM

因此,一种方法是从后端一起获取新资源,或者更聪明的方法是只获取要更改的报价(通过在同一后端上创建REST API)

因此,您需要一些像
/page/quotes
这样的返回HTML页面的路由


还有一些路由,比如
/api/random\u quote
,可以返回JSON格式的随机引用。您可以使用类似于

的东西从前端JS调用,您需要首先区分什么是dom和什么是node

1.DOM 意味着要在浏览器中运行,它需要三种类型的文件

  • js
  • css
  • html
2.节点
它是一种编程语言,一种工具,看起来像javascript。无法在brsower中运行节点。但您可以通过节点编码创建html/css/js文件,也可以通过服务器框架(如node express)返回它们

3.我的建议 如果您真的想在node express中编写一些代码,并进行一些DOM操作。 尝试:

  • SSR(服务器端渲染)
  • 在ejs文件或其他服务器端html模板中编码DOM代码
  • 通过编写服务器api返回页面(Express是一个很好的选择)

您可以创建一个服务器来处理请求和发送响应,但DOM操作不能在Node.js中完成,它不能在浏览器中运行“它是一种编程语言,一种工具,看起来像javascript。”-不,它不是。JavaScript是一种编程语言。Node.js是JavaScript程序运行的运行时环境。感谢您的更正,它确实不够准确