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

Express + MongoDB的最佳会话存储中间件

谭新知
2023-03-14
问题内容

我一直在寻找用于在MongoDB中存储会话数据以在使用Express的生产应用程序中使用的最佳中间件。

我一直在四处寻找,发现了这一点:

  1. session-mongoose (https://github.com/donpark/session-mongoose)根据作者的评论,由于以下原因,该产品尚未投入生产:
* 测试不足
* 零优化
* 会话存储比MongoDB更好的选择
  1. connect-mongo (https://github.com/kcbanner/connect-mongo)

  2. express-session-mongo (https://github.com/davglass/express-session-mongo)

基于这些类

* Sencha Connect内存存储
* ciaranj的express-session-mongodb
  1. connect-session-mongo (https://github.com/bartt/connect-session-mongo)

我一直在看他们的代码,我也在寻找性能比较的文章。你们有经验建议最好的吗?


问题答案:

connect-mongo (https://github.com/kcbanner/connect-
mongo
)看起来比其他人更好。

express-session-mongoconnect-session-mongo
很旧,并且基于旧版本的mongodb驱动程序。

*基于的 *会话猫鼬mongoose,比mongodb驱动程序慢。

我认为 connect-mongo 是最佳选择。



 类似资料:
  • 问题内容: 我正在尝试在我的Express应用程序中使用redis进行会话。 我执行以下操作: 稍后,在我的应用程序中,如果执行以下操作: 我得到: 无法读取未定义的属性“ someProperty” 这表明req.session是未定义的 (我可以从config部分的console.log条目中看到) 我肯定有redis运行,并且可以看到我的应用最初连接到它(使用redis-cli监视器) 问题

  • sessionStorage 会话存储 存储针对QQ帐号隔离 数据存储于内存中,当前游戏结束后被清空 函数 key( index ) 获取对应索引的key 手q 版本7.8.5 参数 参数名 类型 说明 index number 索引值 返回值 类型 说明 string 说明 示例 var stringKey = BK.sessionStorage.key(0); getItem( key )

  • 问题内容: 如果一个用户已经登录并尝试在新实例中再次登录,我希望它注销另一个用户实例。我不希望同一用户在我的应用程序上登录两次。 当前会话存储在Redis存储中,我正在使用express / connect处理会话存储。可以用来破坏会话的可用功能之一如下: 但是,我需要在调用.destroy()之前找到该会话ID。在Redis中,用户名存储为会话的一部分。 问题:是否可以查询Redis以基于用户名

  • 问题内容: 和之间的实际区别是什么? 假设我希望用户会话在闲置15分钟后无效(而不是在第一次打开后15分钟内无效)。其中哪一项对我有帮助? 我也知道我可以这样做,可以将用户的Cookie设置为在一定时间内过期。但是,cookie过期与服务器端的实际会话过期是不相同的。Cookie过期后,这还会删除会话吗? 我的另一个解决方案是 对每个请求都很简单 ,然后将会话与当前时间进行比较,然后基于该时间删除

  • 问题内容: 我想用Spring来实现一个购物车,所以我需要在会话中保存一个对象(该对象具有product,paymentType和deliveryType之类的属性)。我尝试使用bean并将属性“ scope”设置为“ session”来创建它,但是它不起作用,我应该在控制器或类中使用一些其他注释吗?任何示例用法都将非常有帮助:-)预先感谢。 问题答案: 然后 如果它在Web上下文(dispatc

  • 问题内容: 我目前正在将带有mgo lib的mongodb用于Web应用程序,但是我不确定我使用它的方式是否很好。 我初始化db会话并创建获取集合和文档值的变量,因此当我需要查询集合时,我使用变量来实现它。 像那样 : 那么,有没有最佳实践呢?谢谢 问题答案: 我建议不要使用这样的全局会话。相反,您可以创建负责所有数据库交互的类型。例如: 该设计有很多好处。一个重要的方面是,它允许您同时运行多个会