如果我执行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) {
...
}
怎么做?
[]的
答案 0 :(得分:0)
我不确定我是否理解你的问题,但我的答案就是这里。 在应用程序中,我们可以使用:
app.use(session({secret: config.session.secret, saveUninitialized: true, resave: true}));
在中间件中,您可以使用以下条件:
var sessionStore = function(req, res, next){
if (validate()){
req.userName = "Jhon";
}
else{
//do something else
}
next();
}
因此,如果validate()为true,则创建一个变量会话,如果不是,则执行其他操作。
答案 1 :(得分:0)
我达成了临时解决方案。无论如何,会话将在内存中创建,但只有在创建会话的特定属性时才会存储。
见https://github.com/alvieirajr/connect-mongo/blob/master/lib/connect-mongo.js#L247