首页 > 解决方案 > 如何通过点击事件与 Node.js 服务器通信?

问题描述

来自纯粹的前端背景,每当点击 DOM 中的元素时,我都会监听该点击并调用一些函数来做某事。

例如,如果我单击帖子上的收藏图标,我可以调用一个函数将该帖子推送到收藏夹数组中。但这纯粹是在客户端,并且此类数据不存储在某些数据库中(可能仅在某些本地存储中)。

我的问题是,在像 Node.js 这样的服务器环境中,我如何处理鼠标事件/按键事件并调用服务器中的函数来做某事(例如将某些内容存储到数据库中)?这是否意味着在我的示例中单击最喜欢的图标后,我实际上需要执行一个 POST 请求?

标签: javascriptnode.jsexpress

解决方案


这是否意味着在我的示例中单击最喜欢的图标后,我实际上需要执行一个 POST 请求?

对,就是这样。客户端和服务器是两个完全独立的应用程序,在独立的上下文中运行,并且基本上彼此没有任何关系。要中继该数据,您必须以某种方式通过网络发送它。您的选择是 HTTP、WebSockets 或 WebRTC。

HTTP 是一个不错的选择,您可以将它与 XHR 或客户端上的 Fetch API 一起使用。在服务器上,您将通过设置 HTTP 服务器然后处理数据来接收这些 HTTP 请求。Express 是一个使这变得简单的软件包,但设置了路由和一些其他有用的选项。

此外,请考虑客户端上的新 Beacon API。 https://developer.mozilla.org/en-US/docs/Web/API/Beacon_API 这是一种更有效的发送跟踪数据的方式,甚至可以在您的页面上下文被拆除后工作。也就是说,您可以准确跟踪某人何时退出您的页面。


推荐阅读