【发布时间】:2014-10-07 00:25:36
【问题描述】:
如果我执行 db.sessions.find({}) 我们找到了一条记录,即使您确实执行了 next() 方法。
我需要仅在必要时创建数据库(会话存储)中的记录,并且不会出现新请求。我想在特定条件为真后将任何信息存储在 mongodb 中。 我需要仅在必要时创建数据库中的记录。
我创建了一个会话存储,我会像中间件一样使用它:
var sessionStore = express.session({
store: new MongoStore({
url: 'mongodb://localhost:27017/3xam9l3'
}),
secret: '1234567890QWERTY'
});
当我想使用会话时,我会这样做:
app.get('/home', sessionStore, function(req, res) {
...
}
这是怎么做到的?
[]的
【问题讨论】:
-
首先,这似乎是过早的优化。它的原因是什么?其次,似乎是stackoverflow.com/questions/15877342/…的副本
-
@FelipeLeusin 不存在创建 I/O 循环的理由。是不必要的。我达成了一个临时解决方案。无论如何,会话将在内存中创建,但只有在会话的特定属性确实创建时才会存储。请参阅github.com/alvieirajr/connect-mongo/blob/master/lib/…(第 247-249 行)
-
@FelipeLeusin 现在清楚了吗?
-
不是真的,但如果它适合你,那就最好了。你检查过我发布的问题吗?
-
我看到了另一篇文章,但它只显示了我们必须如何使用像中间件这样的会话存储(初始化会话中间件并直接指定你想要会话的路由)。我已经这样做了。我的问题是条件商店会话,而不是必须创建或使用会话时。