Node.js 如何在普通web应用程序上高效地实现类似功能?

Node.js 如何在普通web应用程序上高效地实现类似功能?,node.js,angular,mongodb,express,mean-stack,Node.js,Angular,Mongodb,Express,Mean Stack,我正在构建一个web应用程序,其中用户可以喜欢页面上显示的一些选项 我想以最有效的方式构建这个相似/不同的系统。是否每次按下like按钮都需要向node.js服务器发送http请求以修改Mongo中的用户数据 我这样问是因为我将有一个python脚本作为推荐系统,它可以监听MongoDB中发生的每一个更改。是的,每次单击都应该通过回调转到服务器。有人会说: 您还可以使用此功能进行调整,例如在数组中弹出特定用户喜欢的帖子的所有ID,并在会话结束或特定时间后将其发送回 但是,想想看,如果该数组以某种

我正在构建一个web应用程序,其中用户可以喜欢页面上显示的一些选项

我想以最有效的方式构建这个相似/不同的系统。是否每次按下like按钮都需要向node.js服务器发送http请求以修改Mongo中的用户数据


我这样问是因为我将有一个python脚本作为推荐系统,它可以监听MongoDB中发生的每一个更改。

是的,每次单击都应该通过回调转到服务器。有人会说:

您还可以使用此功能进行调整,例如在数组中弹出特定用户喜欢的帖子的所有ID,并在会话结束或特定时间后将其发送回

但是,想想看,如果该数组以某种方式错误地丢失了数据,该怎么办?或者由于某些原因导致会话失败?另外,其他用户将如何看待喜欢或不喜欢哪个帖子

看,这就是我们每次都会回复的原因。然而,JQuery和其他框架可以让它变得更快

是否每次按下like按钮都需要向node.js服务器发送http请求以修改Mongo中的用户数据

您需要以某种方式将数据传送到服务器,是的。HTTP请求通常是一个很好的选择,并且不必像以前那样重量级

首先,您的服务器应该启用HTTP keep alive,即在请求完成后,底层TCP连接将保持打开状态一段时间。这样,就可以在同一连接上进行后续请求

此外,您应该确保启用了HTTP/2,这是一种更有效的协议,因为它是二进制的。更重要的是,像Cookie之类的头文件不会一次又一次地发送

通过遵循这些最佳实践,您会发现,您的请求/响应只需在现有连接的连接线上保留几个字节。而且,您不必更改代码中的任何内容就可以做到这一点