node.js - mvc架构中如何使用缓存数据

标签 node.js caching express model-view-controller

正如标题所示。我正在尝试找出应该在 Node.js 应用程序中缓存数据的位置。

我正在使用express.js 和 Controller 来处理应用程序中的路由。特定路线的 Controller 将使用 REST API 通过模型层获取数据,然后使用句柄在服务器上进行 View 渲染。

对于这个特定的路线,我正在显示一个菜单,并且我为此获得的数据已在模型和远程 REST 调用中完成。

当用户在菜单中选择不同的项目时,我不想再次进行新的 REST 调用来获取菜单的相同数据,我只需要获取该菜单的数据一次,因为它永远不会改变。

我需要找到一种缓存它的方法,但不知道应该在哪里实现它?

最诚挚的问候

最佳答案

您可以使用 Redis 或 Memcached 等内存存储来缓存来自 REST API 或数据库查找的响应,两者在 npm 上都有可用的良好模块 - ( Redismemcached )。

您需要尝试从内存存储(在您的 Controller 中)获取数据,如果找不到匹配的数据,您将向 API 或数据库发出请求以获取数据,然后将其存储在您选择的内存存储中,以便将来的请求将命中缓存。

注意:还有一些可用的纯 JavaScript 缓存,例如 memory-cachelru-cache如果您不想添加额外的应用程序。

关于node.js - mvc架构中如何使用缓存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35956808/

相关文章:

javascript - Node.js express路由POST请求空体,使用body-parser

javascript - 不使用 url 将值从前端传递到后端

javascript - 如何正确地将 HTTP 错误代码传递给错误处理中间件?

json - node.js http.request 获取json,json前面未定义

android - 修复基于磁盘的缓存大小的最佳方法是什么?android -volley

Javascript 临时死区 NodeJS 7.9.0 性能下降?

caching - 如何在 Spark SQL 中缓存和持久化临时表?

java - JVM(Java 传输客户端)缓存 DNS 条目 AWS 的 IP 地址

node.js - 我应该在 nuxt.js 服务器目录中构建应用程序的服务器端吗?

javascript - Node REPL 中的更改目录不起作用?