这很可能是一个重复的问题。
我最接近答案的地方是:execute a Nodejs script from an html page?
然而,我仍然无法理解。
所以情况如下:
我有一个快速服务器设置,包含以下文件:
server.js 的index.html
现在我希望html文件夹有一个按钮,它调用node.js文件中的函数集。
告诉我是否需要更多信息,谢谢!
编辑: 我重新把这个问题变得更清楚了。
我正在使用快递服务器来展示一个网站,它提供一个按钮,说明"关闭电源",我希望此按钮能够在我的服务器计算机上执行操作,该操作是终止命令以关闭它。
我想知道如何制作用HTML编写的按钮,托管在服务器上但呈现给客户端,与服务器上托管的server.js文件进行交互,该文件将具有执行的功能集命令。
谢谢!
答案 0 :(得分:5)
您需要更好地了解网页的客户端/服务器体系结构如何工作以及代码实际运行的位置以及客户端和服务器如何相互通信。
您无法从HTML文件直接在node.js服务器上调用函数。 HTML文件位于客户端的浏览器中。节点服务器是您的Web服务器,远离客户端在不同计算机上的浏览器。虽然看起来你的HTML可能在你的node.js服务器上,因为它位于该服务器上的一个目录中,而这只是存储它的地方。当浏览器请求该页面时,您的node.js服务器将HTML发送到客户端的浏览器,并将其呈现在客户端浏览器中,并且该页面中的Javascript运行的位置(在客户端中&# 39; s浏览器,远离你的node.js服务器)。这是一个客户端 - 服务器架构。 HTML页面正在客户端上运行。 node.js服务器位于您的服务器上 - 不同的计算机上。
如果你想从网页上与node.js服务器通信,那么你可以在HTML页面中使用Javascript从网页中的Javascript到node.js服务器进行Ajax调用(Ajax调用是一个http请求)。然后,您可以在node.js服务器中为该特定Ajax调用配置一个路由,然后您可以在node.js中编写代码,以便在收到Ajax调用时执行您想要执行的任何操作。它可以在服务器上执行一些操作,它可以检索数据并将其返回给客户端等...您可以选择使用Ajax调用发送数据(作为GET请求的查询参数或作为POST的正文数据)请求)然后服务器可以选择将数据返回给您(通常作为JSON,但它可以是您喜欢的任何格式)。
答案 1 :(得分:3)
我不是Node的专家,但我认为这里发生的事情正在模糊服务器和客户端之间的界限。即使两者都使用JavaScript,也有区别。 NodeJS很容易被Ruby,PHP,Java,无论你喜欢什么样的后端语言所取代,这种区别的应用方式与在服务器上使用JavaScript时的方式相同。没有区别。
服务器端代码在服务器上执行。客户端代码在客户端(浏览器)上执行。如果您需要调用NodeJS函数(假设它必须与其他服务器端代码(如数据库等)交互),那么您可以通过AJAX或标准HTTP向服务器上的路由发送请求并调用该函数在路线内。
另一方面,如果该功能足够通用且不涉及任何特定的节点代码,那么您只需将带有JavaScript文件的脚本标记添加到index.html页面即可。
答案 2 :(得分:0)
我要感谢大家的帮助。这意味着很多!
我使用AJAX调用以一种阴暗但功能性的方式管理自己。嘿,不要修复什么没破。非常感谢!