任何人都可以告诉我如何在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
答案 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中的代码,了解其运作方式。