Node.js NodeJS会话管理演示

Node.js NodeJS会话管理演示,node.js,session,express,Node.js,Session,Express,有人能告诉我如何在NodeJS中创建会话变量以及如何浏览它吗。 实际上,我正在使用NodeJS和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.ge

有人能告诉我如何在NodeJS中创建会话变量以及如何浏览它吗。 实际上,我正在使用NodeJS和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);
 };
我这样做了,但是在会话变量中得到了未定义的值

 Output:         
     SessionS-demo
     SessionFun-undefined

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。我必须使用expressExpress是基于connect的,所以当你使用express时,你已经拥有了所有的connect中间件。我会在几分钟内为你准备好这个例子。你能帮我从回调函数中获取数据吗?这些回调函数是从长时间以来遇到的,比如说。res.('data',function(data){console.log(data);})Jayant,我想我不明白你的问题。