这很可能是一个重复的问题。
我得到的最接近答案的是: execute a Nodejs script from an html page?
然而,我还是无法理解。
所以情况是这样的:
我有一个包含以下文件的快速服务器设置:
- 快递应用
服务器.js index.html
现在我希望 html 文件夹有一个按钮,它调用 node.js 文件中设置的函数。
告诉我是否需要更多信息,谢谢!
编辑:我正在重新制作问题以使其更加清晰。
我正在使用一个快速服务器来呈现一个网站,该网站呈现一个按钮,上面写着“关闭电源”,我希望这个按钮能够在我的服务器计算机上执行一个动作,该动作是一个终端命令来关闭它。
我想知道如何制作以 HTML 编写、托管在服务器上但呈现给客户端的上述按钮,以便与托管在服务器上的 server.js 文件进行交互,该文件将具有执行上述命令的功能集。
谢谢!
原文由 hiperbolt 发布,翻译遵循 CC BY-SA 4.0 许可协议
您需要更好地了解网页的客户端/服务器架构如何工作、代码实际运行的位置以及客户端和服务器如何相互通信。
您不能从 HTML 文件直接在 node.js 服务器上调用函数。 HTML 文件位于客户端的浏览器中。节点服务器就是你的web服务器,远离不同电脑上的客户端浏览器。尽管您的 HTML 看起来像是在您的 node.js 服务器上,因为它位于该服务器上的一个目录中,但这只是它的存储位置。当浏览器请求该页面时,您的 node.js 服务器将 HTML 发送到客户端的浏览器,并在客户端浏览器中呈现,这就是该页面中运行 Javascript 的地方(在客户端的浏览器中,远离您的 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,但它可以是您喜欢的任何格式)。