Jas*_*son 15 node.js express pug
我试图了解何时最好使用以下各项.这是我的基本理解:
app.locals - 适合在应用程序级别存储全局变量.所有用户/会话将看到这些变量的相同值.变量可供所有视图使用.
res.locals - 适用于存储特定请求/响应周期的变量.变量仅可用于与响应关联的视图.
req.session - 适用于存储与唯一用户会话相关联的变量(例如,用户名).这些变量应该可用于唯一用户/会话的所有视图.
我具体的用例如下:用户运行从mongodb检索数据的查询.我现在想要这个查询的结果,它是一个JSON数组,可用作所有视图(HTTP请求)的变量."存储"结果数组以便每个视图都可以访问它的最佳方法是什么?
我现在想要这个查询的结果,它是一个 json 数组,可以作为所有视图的变量。“存储”结果数组以便每个视图都可以访问它的最佳方法是什么?
当您说“可用于所有视图”时,我假设您的意思是跨所有 HTTP 请求。如果是这种情况,那么您需要注意 HTTP 是无状态协议,并且不提供此功能。您需要为此开发自己的机制。
实现此目的的一种方法是在服务器上缓存此信息(数组)并在每次请求时检索它(例如,从内存而不是从 MongoDB 检索它)。您将在 cookie 上存储一个会话 ID,并在另一个请求通过时根据此 ID 从缓存中获取它。有多种可用的缓存工具(例如 redis、memcached 等),您可以选择将信息存储在内存中。
您还可以 cookie 该信息(数组本身),在这种情况下,它将在每个 HTTP 请求上在客户端和服务器之间来回发送,并且很可能不是一个好主意,除非数据非常小。