【问题标题】:Is it possible to invoke a method defined in Node js file from Html or plain js file?是否可以从 Html 或纯 js 文件调用 Node js 文件中定义的方法?
【发布时间】:2015-12-31 14:37:38
【问题描述】:

在一个 nodejs 文件中有一种方法,我需要通过在 HTML 页面中单击按钮来调用该方法。如何在 HTML 文件中包含 Node js 文件,以及如何调用该方法。我google了很多,但无法得到确切的解决方案,谁能帮我解决这个问题?

【问题讨论】:

  • 你还没有弄清楚节点(服务器)和浏览器(客户端)的分歧点。
  • 嗨 Nicholas Kyriakides,我没有让你清楚,实际上,我在同一台机器上拥有 Node 文件和纯 js 文件、html 文件,并在同一台机器上通过浏览器查看,而不是在偏远地区.
  • 没关系 - 它仍然是客户端 - 服务器架构,在您的情况下它们位于同一位置。在做任何其他事情之前,你需要先了解这个概念,否则你会迷路 - 这是 web-dev 101。Node.js 不是你包含在浏览器中的文件,它是服务器环境本身,因此我怀疑你是否在设置中你认为你是。
  • 我该怎么做。有没有办法从 HTMl 页面调用 Node js 文件中定义的方法?(通过 HTTP 或任何可用的方法)。实际上,我通过 '' 直接将普通 js 文件包含到 HTML 文件中,但我无法实现这一点以包含节点 js 文件。请帮帮我
  • 您应该阅读 web-development 101 - 下面还有一个答案,但我非常怀疑您是否能够关注其中的任何内容。

标签: javascript jquery html node.js


【解决方案1】:

node.js 在您的服务器上运行,而不是在浏览器中。要调用 node.js 服务器上的某些内容,您需要在服务器上定义一个路由,然后从浏览器 Javascript 发出一个 Ajax 调用,其 URL 将命中该路由。

然后,来自浏览器的 Ajax 请求可以导致之前定义的路由在您的 node.js 服务器上执行,并且可以从 ajax 调用将结果返回给浏览器。

【讨论】:

    【解决方案2】:

    您误认为节点是服务器端框架而不是客户端 html,这意味着您正在尝试执行它永远不可能的客户端。

    解决办法是

    使用rest服务调用函数

    示例代码:

    router.all("/rest/invoke",function(){
    //write your code here 
    
    })
    

    使用您的服务器名称 + 调用路径从 html 调用此代码

    喜欢 http://127.0.0.1/rest/invoke?params="123"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-14
      • 1970-01-01
      • 2015-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多