当前位置: 首页 > 面试题库 >

在生产中使用MemoryStore

国斌斌
2023-03-14
问题内容

今天,我第一次在“生产”模式下运行Node.js应用程序,并收到以下警告:

Warning: connection.session() MemoryStore is not
designed for a production environment, as it will leak
memory, and obviously only work within a single process.

我只需要运行一个进程,但是应该使用什么呢?我希望我的会话驻留在RAM中以便快速访问。我还希望能够通过仅关闭Node应用程序来丢弃所有会话。

仅安装Redis,MongoDB或其他数据库来完成此简单任务似乎是过大的选择。我也不明白为什么不应该真正使用Node中包含MemoryStore?


问题答案:

MemoryStore仅用于(快速)开发模式,因为如果您的应用程序重新启动(进程终止),您将丢失所有会话数据(驻留在该进程的内存中)。

如果您不想使用数据库,请改用加密的cookie存储。

http://www.senchalabs.org/connect/cookieSession.html



 类似资料:
  • 我试图写一个简单的例子,在CDI 2.0的JavaSE中使用生产者方法,但是遇到了一个问题。 以下是制作人: 这是注射点: 我通过如下方式引导运行示例: 我有一颗豆子。xml文件。 例外情况是: 线程“main”组织中出现异常。jboss。焊接例外情况。DeploymentException:WELD-001408:在注入点[BackedAnnotatedField]@InjectPrivate

  • 问题内容: 我正在使用IdentityServer4和来自ASP.NET Core 3.0的React启动项目。预览4,它可以完美工作,直到构建解决方案并尝试使用dotnet命令从cmd提示符运行它为止。每次我启动应用程序时,它都会告诉我未指定密钥类型。 我没有尝试过各种有关生成证书的指南,因为我对.NET没有任何经验。我提到这一点是为了防止问题可能是由于生成证书的方式不正确引起的。 我也尝试过将

  • 问题内容: 我一直在使用babel-node和带有babelify转换的browserify开发站点,以支持ES6语法。 我只是想知道,我是否可以在生产环境中运行它, 而不是 在节点中运行ES6还需要其他哪些选项? 这是我正在运行的用于构建和开始开发的命令 这是我的开发依赖 问题答案: 对于客户端代码 ,您正在做正确的事情。并将其运送给客户。 对于服务器端代码 ,我将使用babel- cli 进行

  • 我对如何在生产中使用hyperledger composer有一些疑问。我需要使用hyperledger composer创建API,它将被我们的前端应用程序使用,它不是angular JS的。 我有通过passport-jwt验证的rest点,所以我需要一张卡来访问网络。我需要把卡传给前端吗?而前端将如何通过该卡连接到网络以产生更多的参与者并管理整个应用? 我们需要在哪里存储已创建用户的卡片?或

  • Kibana 的配置很大程度上依赖于您的使用场景。如果只有自己使用,可以在自己的机器上运行 Kibana,配置它指向任何您想要交互的 Elasticsearch 实例。相反,如果有大量的 Kibana 使用者,需要多个 Kibana 实例连接至同一个 Elasticsearch 节点,来保证负载均衡。 尽管 Kibana 不是非常耗费资源,我们仍然建议运行 Kibana 的节点和 Elastics

  • 问题内容: 有没有人最近在使用SQL Server数据库后端部署Django应用程序方面获得过经验?我们的工作场所在SQL Server上投入了大量资金,如果没有足够完善的后端,它将不支持Django。 我知道mssql.django-pyodbc和django- mssql是非正式支持的后端。这两个项目似乎都只有一个人供款,尽管供款似乎有些规律,但这有点令人担忧。 是否有其他受支持的SQL Se