node.js - 前端与后端处理
问题描述
我正在摄取一个 React-NodeJS 堆栈的代码库。我试图掌握的概念之一是关于后端 API 及其处理客户端的方式。
代码库本质上是通过 API 调用从 MongoDB 中转储整个集合,然后使用 React 进行大量解析和客户端逻辑以呈现自定义视图。这里的 HTTP 响应非常大,并且只会随着数据添加到数据库而变得更大。
与在 NodeJS 中创建多个端点并利用 Mongoose 之类的东西将过滤后的数据返回给客户端相比,这种方法是否有任何优点/缺点,从而使渲染变得容易并且响应更小。
要考虑的事情可能是资源消耗,如果在云中如何计费,SPA 的影响等。
希望我在这结束时能更清楚一些吗?
解决方案
客户端处理是最好的,因为您知道我们的服务器端资源是免费的并且可以轻松处理请求。但是将大量数据发送到客户端进行处理会产生客户端开销并使其浏览体验不太可接受,数据安全性可能是受到损害,或者网络可能不堪重负并消耗带宽。处理数据服务器端将增加每个客户端的服务器负载。
所以为了避免这些问题,最好先将这些冲突中的一些交给数据库处理的一侧(带有过滤和特殊条件),然后使用不发送客户端的命令和编码过滤服务器端处理的安全数据.
但是让我们在客户端机器上进行繁重的处理。当然,SPA 还有其他好处。
所以我主要做服务器端处理——除非它是非常基本的东西,比如简单的排序等。
此外,不要假设 JavaScript 已启用。您必须优雅地后退,这将需要服务器无论如何都要进行处理。
这个链接告诉你服务器端和客户端编程之间的区别
推荐阅读
- javascript - 单击一个页面中的按钮以锚定链接以在另一页面中打开特定的手风琴选项卡
- websphere - 如何在 IBM ILOG CPLEX Optimization Studio 上使用 SOS2
- r - 用于引用与特定因子值关联的值的函数
- xamarin.forms - Xamarin.Forms.Android 在发布模式下播放 HLS 视频的黑屏,链接设置为“仅 SDK 程序集”
- reactjs - 如何在 VSCode 中为 React 功能组件道具显示基于 JSDoc 的道具工具提示?
- spring-boot - 在 Spring Boot 中使用 thymeleaf 显示消息
- css - CSS网格中的自动偏移/对齐?
- c - printf("%d", 5) 和 printf("5") 的区别
- rest - 使用 HTTP/JSON 将文件上传到 gRPC 转码
- callback - 破折号,循环回调输入