2017-10-16 3 views
0

Je les codes suivants:Comment garder la valeur de req.session express session

var session = require('express-session'); 
var sessionConfig = { 
    secret: 'somesecretkey', 
    cookie: {secure: false}, 
    resave: false, 
    saveUninitialized: false, 
    store: new mongostore({ mongooseConnection: mongoose.connection }) 
} 

router.get('/', function(req, res, next) { 

    var abc = req.session.user; 
    var trueOrFalse = isset(abc); 

    console.log(trueOrFalse); 
    req.session.user = 1; 
    req.session.save(); 
}); 

function isset(var1){ 
    if(typeof var1 !== 'undefined') { 
    return true; 
} 
    return false; 
} 

Ma réponse attente d'impression est « faux » pour la première fois, puis après j'actualiser la page, il toujours imprimer 'vrai' pour les temps suivants. Cependant, il imprime toujours 'faux' car il n'a pas gardé la valeur.

Aidez-nous s'il vous plaît.

+0

qu'est-ce que vous obtenez dans la console si vous sortie 'req.session.user' dans les deux situations à savoir premières charges de charge et les suivantes? –

+0

@MohitBhardwaj Je reçois toujours une valeur indéfinie pour req.session.user, peu importe combien de fois je recharge la page. – Byao

+0

Etes-vous sûr que votre 'mongoose.connexion 'fonctionne correctement? Pouvez-vous vérifier qu'il existe une collection 'sessions' dans votre base de données connectée? –

Répondre

0

Je ne suis pas sûr, mais il semble que vous n'ayez pas ajouté la session en tant que middleware pour que toutes les demandes entrantes passent à travers cela. Vous pouvez probablement faire quelque chose comme ça (dans votre fichier principal généralement app.js):

var session = require('express-session'); 
app.use(session({ 
    secret: 'somesecretkey', 
    cookie: {secure: false}, 
    resave: false, 
    saveUninitialized: false, 
    store: new mongostore({ mongooseConnection: mongoose.connection }) 
})); 

// Now here come your route handlers 
app.use("/", routes); 
+0

Je l'avais déjà dans mon fichier principal. :( – Byao