【问题标题】:Deal and keep node.js/express sessions处理并保持 node.js/express 会话
【发布时间】:2012-12-09 23:32:57
【问题描述】:

我目前正在开发一个网络应用程序,每次调用fs.mkdir 时,这个网络应用程序都会删除所有当前的快速会话,所以我需要一种方法来保留所有这些会话。我试图用 connect-mongodb 和 connect-redis 来保留所有这些会话,但都不起作用,nodemon 总是说 req.session 是未定义的。我不知道我必须做什么才能保留所有会话。

我需要一种方法来保留所有会话,在执行fs.mkdir 时不要丢失它们,以及它的教程,因为我还没有找到任何好的和完整的教程,任何人都可以工作!我在 Stackoverflow 中阅读了与此相关的所有内容,但一切正常!请帮忙!

【问题讨论】:

    标签: javascript node.js express redis


    【解决方案1】:

    这听起来很奇特,在fs.mkdir 之后你的会话被删除了。 (我发现了你的另一个 SO 问题)

    但回到问题上来,这里有一段小代码 sn-p 如何使用会话(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);
    

    你应该阅读express的文档,并浏览快递的examples

    【讨论】:

    • 现在,当在 app.post 中调用 fs.mkdir 时,我无法分配新的 req.session.user 例如,但我不会丢失其余的会话。我要试试你的代码,谢谢! :D
    猜你喜欢
    • 2019-04-20
    • 2011-08-31
    • 2018-10-03
    • 1970-01-01
    • 2015-09-06
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    相关资源
    最近更新 更多