2016-11-23 9 views
5

Mam następujący kod NodeJS:Jak używać zmiennej sesji z 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; 

Zasadniczo chciałbym przechowywać wartość zmiennej w zmiennej sesji comport i command tak, że wartości tych zmiennych mogą być wykorzystane w innej stronie routera w nodejs .

Nie wiem, jak zapisać i pobrać zmienną sesji.

+0

Czy używasz ekspresowego? –

+0

Tak, używam ekspresowej – John

Odpowiedz

9

Install express-session i używać w następujący sposób:

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

następujący kod wyjaśnić proste logowanie i wylogowanie z wykorzystaniem sesji. Zainicjowana przez nas session używa secret do przechowywania cookies. Mam nadzieję że to pomoże.

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('/'); 
    } 
    }); 
});` 
+0

Dziękuję. Jaki byłby cel app.use (session ({secret: 'XASDASDA'})); i jak ustawić wartości zmiennych? – John

+0

'secret' jest używany do obsługi" cookie "itp. I umieszczamy jakiś sekret do używania sesji ekspresowej i normalnie dla różnych widoków uwierzytelniamy' sesję' przed routingiem do widoków w oparciu o warunek i wymaganie. –

+0

dobrze za to dziękuję, ale jak zdefiniowałbym wartość sesji comport i polecenia do użycia na tej stronie? – John

Powiązane problemy