我目前正在开发一个网络应用,这个网络应用每次调用fs.mkdir
时,删除所有当前的快速会话,所以我需要一种方法来保留所有这些会话。我试图用connect-mongodb和connect-redis保持所有这些会话,但是两者都不起作用,nodemon总是说req.session是未定义的。我不知道我要做什么来保持所有的会议。
我需要一种方法来保留所有会话,不要在执行fs.mkdir
时丢失它们,并为它编写教程,因为我还没有找到任何好的和完整的教程,任何人都可以!在Stackoverflow中,我正在阅读所有与此相关的内容,但是一切正常!请帮忙!
答案 0 :(得分:1)
这听起来很奇特,在fs.mkdir
你的会话被删除之后。 (我发现了你的其他问题)
但回到这个问题,这里有一些代码片段,你可以如何使用会话(redis)。
var express = require('express')
, fs = require('fs')
, http = require('http')
, RedisStore = require('connect-redis')(express)
, sessionStore = new RedisStore()
, app = express()
;
app.configure(function(){
app.set('port', 3000);
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('secret'));
app.use(express.session({
store: sessionStore
}));
app.use(express.static(__dirname + '/public'));
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.get( '/', function(req, res){
res.setHeader("Content-Type", "text/html");
console.log( req.session );
console.log( '------------------------' );
res.end( 'root' );
});
app.get( '/dir/:id', function(req, res){
console.log( req.session );
console.log( '------------------------' );
fs.mkdir( req.params.id );
if ( req.session.dirs === undefined )
req.session.dirs = [];
req.session.dirs.push( req.params.id );
console.log( req.session );
console.log( '------------------------' );
res.setHeader("Content-Type", "text/html");
res.end( 'dir' );
});
server = http.createServer(app).listen(3000);