0

我知道可以通过 express 控制会话开始并连接中间件。就像这里建议的那样:Controlling Session Start with express and connect middleware

是否可以使用 LocomotiveJS 控制会话开始?

我不想为每个用户启动会话 - 我只想在用户成功登录时启动它。

我已经在 MongoDb 中存储了会话(未来我将使用 Redis)并为每个进入页面的用户创建不需要的会话似乎是一种资源浪费。

4

1 回答 1

0

我刚刚找到了解决方案:可能LcomotiveJS本身并不直接支持,但是使用Express可以很容易地实现(而Locomotive在它之上)。

而不是将会话声明为:

this.use(express.cookieParser());
this.use(express.session({
    secret: '123qwemax',
    cookie: {maxAge: 60 * 60 * 1000},
    store: new MongoStore({
      url: 'mongodb://localhost:27017/tests'       
    }),
}));

将您的会话声明为:

this.get(/^\/login\/.*/, express.cookieParser());
this.get(/^\/login\/.*/, express.session({
    secret: '123qwemax',
    cookie: {maxAge: 60 * 60 * 1000},
    store: new MongoStore({
      url: 'mongodb://localhost:27017/tests'       
    }),
}));

这样,只要我们进入 /login/.* 页面,会话就会开始。

我不知道为什么这一切都不起作用......

于 2013-09-12T19:29:20.917 回答