Node Js Session管理演示

时间:2013-11-06 09:54:42

标签: node.js session express

任何人都可以告诉我如何在Node Js中创建会话变量以及如何浏览它。 实际上我正在使用Node Js和Express

    exports.setSession=function(req,res){
req.session.user = 'demo';
//console.log("adding to session " + JSON.stringify(user));
console.log("SessionS-"+req.session.user);
    };


   exports.get_session = function(req, res){
console.log("SessionFun-"+req.session.user);
 };

我这样做但在session var中得到未定义的值

 Output:         
     SessionS-demo
     SessionFun-undefined

1 个答案:

答案 0 :(得分:2)

Express基于连接中间件,因此您可以重用连接会话实现而不是自己编写。您可以在下面找到示例代码。

var http = require('http')
  , express = require('express')
  , app = express();

app.use(express.cookieParser());
app.use(express.session({secret: '1234567890QWERTY'}));

app.get('/set',function(req, res){
    req.session.user = { name:'andbas' };
    res.send('Session set');
});

app.get('/get',function(req, res){
    res.send(req.session.user);
});

http.createServer(app).listen(3000, function(){
    console.log('Express server listening on port 3000');
});

此代码在您进行GET /set来电时设置会话用户变量,并在您执行GET /get时将其发回给您。 试试吧。

您在自己的代码中犯的错误是您只修改了req变量,哪个节点http模块为每个请求创建。它不是您可以保存数据的地方。而不是这个,您需要使用HTTP标头来设置密钥,这将用于识别用户并将其存储在服务器上(我大大简化了概念,使其更易理解)。您可以查看connect session中的代码,了解其运作方式。