从node.js应用静态提供的html中直接访问node.js应用函数

Access node.js app functions directly from html served statically from that node.js app

本文关键字:js 应用 node 函数 访问 静态 html      更新时间:2023-09-26

好吧,我可能在这里问得太多了,而且/或者表现出我的天真,但是请原谅我。

目前我有一个html(带js)托管在A,和node.js应用托管在B。html/js通过XMLHttpRequest从节点应用获取数据,节点应用在B尽职尽责地生成请求的数据并将其发送给A。

我想减少http请求的数量,并简化性能一般,和是否可以通过节点主机的html/js应用程序(通过express.static())所以当html/js请求节点的数据服务器,它实际上从相同的服务器请求数据,实际上都在相同的应用程序(因为节点应用程序生成的数据和节点应用程序也将html/js静态路由)。

那么有没有办法让html中的js更直接地访问节点应用程序的功能,也就是说,而不是向同一个节点应用程序发送http请求,只是直接访问节点应用程序中的数据生成功能,或者至少不使用http请求?

我有东西设置在我的节点应用程序,以便html/js可以通过express.static()成功托管-所以它的工作在这个程度上是OK的-但我只需要知道是否有可能避免一个http请求一直绕着一个大循环,回到同一个节点应用程序!

简单的答案是,如果A和B相距很远,是的,将它们托管在同一台服务器上会有所帮助。

从同一个应用程序中提供它们是没有用的,因为你仍然需要通过HTTP进行通信。

是否可以从A到B删除HTTP调用的问题取决于应用程序设计。你有一个静态的web应用程序和一个API,你基本上是在考虑把它变成一个应用程序。

两者都有利弊,但如果我开始列出它们,我将沿着个人意见的道路。

我的投票,不用麻烦了:)

当你通过express.static()提供html和js文件时,它们不是在服务器中运行,而是从服务器到浏览器。js脚本在浏览器中运行。浏览器脚本要与服务器通信,必须使用http/https请求或套接字。您可以从服务器A与服务器B通信浏览器脚本(但要检查CORS)。