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

Node.js服务器重新启动将删除会话

郗阳德
2023-03-14
问题内容

我有使用Express和Connect中间件的功能齐全的用户注册/身份验证系统。

app.use(express.session({store: require('connect').session.MemoryStore( {reapInterval: 60000 * 10} ) }))

唯一的问题是,每次执行服务器重新启动时,会话都会中断。

https://github.com/remy/nodemon-并且nodemon每次检测到文件更改时都会重新启动node.js。

如何进行持续性会话?


问题答案:

就像您的代码告诉您正在使用MemoryStore一样。这是易失的,重启后会清除。我建议您使用connect_redis来保持会话。Redis是一家非常快速的商店。

  1. 下载redis
  2. 编译redis: make
  3. 启动服务器: ./redis-server
  4. npm install connect-redis
  5. var connect = require(‘connect’) , RedisStore = require(‘connect-redis’);

    connect.createServer(
    connect.cookieParser(),
    // 5 minutes
    connect.session({ store: new RedisStore })
    );


这只是为了让您快速入门。如果您想充分利用Redis,应该阅读文档并配置Redis。



 类似资料:
  • 在每个服务器上创建x会话后,我有2个不同的tomcat服务器(不同的机器),当我重新启动两个服务器时,其中一个保留会话,而另一个没有, -知道为什么吗?-我想和两只雄猫保持通话 谢谢

  • 问题内容: 我已经安装并正在osx上运行一个node.js服务器。我已经释放了一个聊天模块,并且正在愉快地运行它。我更改了一些内容,需要重新启动服务器才能看到效果。 我只知道如何通过关闭终端窗口,然后重新对其进行操作,然后再次运行节点chatdemo.js来重新启动。 有什么方法可以重启而不关闭终端吗? 谢谢。 问题答案: 如果它仅在运行(不是守护程序),则使用。 如果是守护进程,则可以尝试: 凡

  • 问题内容: 我有一个Express 4应用程序设置来进行会话。 当我提交表单时,它将user_id保存到req.session中。但是,当我重新启动服务器时,会话消失了。 为什么不持续?我是否缺少某些配置? 问题答案: express-session的默认会话存储是MemoryStore,顾名思义,该存储仅将会话存储在内存中。如果需要持久性,则有许多可用于Express的会话存储。一些例子: co

  • 我们在Android8.1及以上版本中偶然发现了一个我们以前从未见过的问题,不幸的是,这使得我们的应用程序对我们的用户来说不太方便。在Android 8.1及以上版本中,当用户刷屏杀死应用程序时,后台粘性服务不会重新启动。

  • 我在我们的应用程序中使用eclipse milo java OPCUA客户端SDK来实现OPC。我能够创建会话、订阅和监视。它工作正常,但当opc服务器重新启动时,我尝试删除上一个会话并创建一个具有相同参数的新会话,我得到以下异常: UaException:状态=错误超时,消息=等待确认超时 抛出错误的行是: EndpointDescription[]endpoint=客户端。getEndpoin

  • 问题内容: 任何node.js专家都可以告诉我如何在机器启动时配置节点JS以自动启动服务器吗?我在Windows上 问题答案: 根本不需要在node.js中进行配置,这完全是操作系统的职责(在您的情况下为Windows)。实现此目的的最可靠方法是通过Windows服务。 有一个 超级简单的 模块,它可以将节点脚本安装为Windows服务,称为 节点窗口 (npm,github,documentat