Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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
在html文件中调用node.js函数_Html_Node.js_Express - Fatal编程技术网

在html文件中调用node.js函数

在html文件中调用node.js函数,html,node.js,express,Html,Node.js,Express,这很可能是一个重复的问题 我得到的最接近答案是: 然而,我还是不明白 情况是这样的: 我有一个包含以下文件的express server设置: 快速应用 server.js index.html 现在我希望html文件夹有一个按钮,它调用node.js文件中的函数集 如果需要更多信息,请告诉我,谢谢 编辑: 我正在重新设计这个问题,以便更清楚 我正在使用一个express服务器来呈现一个网站,它呈现一个按钮,上面写着“关机”,我希望这个按钮能够在我的服务器计算机上执行一个操作,该操作是一个

这很可能是一个重复的问题

我得到的最接近答案是:

然而,我还是不明白

情况是这样的:

我有一个包含以下文件的express server设置:

  • 快速应用 server.js index.html

现在我希望html文件夹有一个按钮,它调用node.js文件中的函数集

如果需要更多信息,请告诉我,谢谢

编辑: 我正在重新设计这个问题,以便更清楚

我正在使用一个express服务器来呈现一个网站,它呈现一个按钮,上面写着“关机”,我希望这个按钮能够在我的服务器计算机上执行一个操作,该操作是一个终端命令来关闭它

我想知道我如何才能使这个按钮,用HTML编写,托管在服务器上,但呈现给客户端,与托管在服务器上的server.js文件交互,该文件将具有执行上述命令的功能集


谢谢

我不是Node方面的专家,但我认为这里发生的事情模糊了服务器和客户端之间的界限。尽管两者都使用JavaScript,但还是有区别的。NodeJS可以很容易地被Ruby、PHP、Java或任何您喜欢的后端语言所取代,这种区别将以在服务器上使用JavaScript时的相同方式应用。没有区别

服务器端代码在服务器上执行。客户端代码在客户端(浏览器)上执行。如果需要调用NodeJS函数(假设它必须与其他服务器端代码(如数据库等)交互),则可以通过AJAX或标准HTTP向服务器上的a路由发送请求,并在路由中调用该函数


另一方面,,如果该函数足够通用并且不涉及任何特定的节点代码,那么您可以简单地将JavaScript文件中的脚本标记添加到index.html页面。

您需要更好地了解网页的客户端/服务器体系结构如何工作,代码实际运行的位置以及客户端和服务器如何与之通信另一个

不能从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,但可以是您喜欢的任何格式)。

您可以使用以下命令将js文件添加到html正文部分:
您可以执行JavaScript(Node.js实现的语言)在浏览器中使用
标记呈现html页面。也许你应该从理解客户端和服务器之间的区别开始。不是
节点
人,但OP也可能意味着“有没有一种方法可以发出服务器端方法,内联html”,就像在其他“框架”中一样像Pph、ASP..Net等。所以类似于
的东西就是我在ASP/.Net中的做法,例如在HTML(视图)中(“调用
C
VB
foo()
函数”)。跳过“额外的”Ajax调用(在没有额外客户端调用的情况下呈现)。我对学习也很感兴趣……我对python有很好的经验,这只是我第一次使用node。我很理解服务器和客户端之间的区别,我也这么认为。理论上,我该如何让我的html页面带有一个按钮,该按钮调用我服务器端javascript文件中的函数,said函数将执行一个终端命令。谢谢,伙计!我发现:这有助于我理解吗?@HiperBolt-我已经在我的回答中解释过了-请再次阅读我的回答。您使用从浏览器网页到服务器的Ajax调用。如果您不理解我在回答中解释的内容,请更具体地询问exac您可能不明白。您知道什么是Ajax调用吗?您知道如何在node.js中创建路由来处理Ajax请求吗?您知道如何从网页Javascript进行Ajax调用吗?仅供参考,Ajax请求只是从浏览器到某个服务器的http请求。请参阅: