web-dev-qa-db-fra.com

Comment utiliser la variable de session avec NodeJs?

J'ai le code NodeJS suivant:

  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;

Essentiellement, je voudrais stocker la valeur des variables comport et command dans une variable de session afin que la valeur de ces variables puisse être utilisée dans une autre page de routeur dans nodejs.

Je ne sais pas comment stocker et récupérer la variable de session.

15
John

Installer express-session et utilisez comme suit:

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; 
});

Le code suivant explique la connexion et la déconnexion simples à l'aide de la session. Le session que nous initialisons utilise secret pour stocker cookies. J'espère que cela t'aides.

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('/');
    }
  });
});`
22
Satish Patel