节点Js会话pipe理演示

任何人都可以告诉我如何在Node Js中创build会话variables以及如何浏览它。 其实我正在使用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); }; 

我这样做,但会话variables中获取未定义的值

  Output: SessionS-demo SessionFun-undefined 

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

 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调用时设置会话用户variables,并在执行GET /get时将其发回给您。 去尝试一下。

你在自己的代码中犯的错误是你只修改reqvariables,哪个节点http模块为每个请求创build。 这不是你可以保存数据的地方。 而不是这个,你需要用户HTTP头设置密钥,这将被用来识别用户和存储在服务器上的数据(我大大简化了概念,使其更容易理解)。 您可以查看连接会话中的代码以了解它是如何工作的。