如何使用NodeJs的会话variables?

我有以下的NodeJS代码:

let sql = `SELECT box_id, cubby_id, occupied, comport FROM box WHERE longestDimension = ? AND LOWER(box_id) = LOWER(?)`; connection.query(sql, [boxSelectedDimension, boxSelectedValue] , function(err, rows, fields) { if (!err) { for(var i=0; i< rows.length; i++) { // Make the comparaison case insensitive if (rows[i].occupied == `unoccupied`) { console.log("free"); var comport = rows[i].comport; var command = "open" + rows[i].cubby_id; 

本质上,我想将comportcommandvariables的值存储在会话variables中,以便这些variables的值可以在nodejs的另一个路由器页面中使用。

我不知道如何存储和检索会话variables。

安装express-session和使用如下:

 var express = require('express'); var session = require('express-session'); var app = express(); app.use(session({secret:'XASDASDA'})); var ssn ; app.get('/',function(req,res){ ssn=req.session; /* * Here we have assign the 'session' to 'ssn'. * Now we can create any number of session variable we want. * Here we do like this. */ // YOUR CODE HERE TO GET COMPORT AND COMMAND ssn.comport; ssn.command; }); 

以下代码解释了使用会话进行简单的login和注销。 我们初始化的session使用secret来存储cookies 。 希望这可以帮助。

 var ssn; app.get('/',function(req,res) { ssn = req.session; if(ssn.email) { res.redirect('/admin'); } else { res.render('index.html'); } }); app.post('/login',function(req,res){ ssn = req.session; ssn.email=req.body.email; res.end('done'); }); app.get('/admin',function(req,res){ ssn = req.session; if(ssn.email) { res.write('<h1>Hello '+ssn.email+'</h1>'); res.end('<a href="+">Logout</a>'); } else { res.write('<h1>login first.</h1>'); res.end('<a href="+">Login</a>'); } }); app.get('/logout',function(req,res){ req.session.destroy(function(err) { if(err) { console.log(err); } else { res.redirect('/'); } }); });`