2016-07-02 12 views
0

Ich habe ein Problem mit der Behandlung Sitzung mit der neuesten Version von Express, Node.js. Meine Anforderung ist, Benutzer E-Mail-ID in/Login-Route zu speichern, und müssen diese E-Mail-ID alle Routen wie/zu Hause ausdenken. Die E-Mail-ID druckt jedoch nicht in/home route mit meinem aktuellen Code. Ihre Hilfe ist sehr zu schätzen.Node.js speichern Sitzung mit Redis speichern

Meine Demo-Code ist hier

var express = require('express'); 
var app = express(); 
var cookieParser = require('cookie-parser'); 
var session = require('express-session'); 
var RedisStore = require('connect-redis')(session); 
app.set('port',process.env.PORT || 3000); 
app.use(cookieParser()); 
app.use(session({ 
    resave: false, 
    saveUninitialized: false, 
    store: new RedisStore({ 
     host: 'localhost', 
     port: 6379 
    }), 
    secret: 'some string/hash secret' 
})); 


var counter=0; 
app.get('/login', function(request, response){ 
    //adding some value to request.session 
    request.session.email = '[email protected]'; 
    console.log('sessionID', request.sessionID) 
    response.send('email: '+request.session.email); 

}); 
app.get('/home', function (request, response) { 
    console.log('home login', request.session.email); // Email not priting here 
    console.log('sessionID - home', request.sessionID); // Session ID is showing 
    response.send('home'); 
}); 

if (!module.parent) { 
    console.info('Listening ', process.env.PORT || 5000); 
    app.listen(process.env.PORT || 5000); 
} 
module.exports = app; 

ich folgende Störung erhalten

"ReplyError: ERR wrong number of arguments for 'set' command 
    at parseError (/home/dibeesh/obpnode6/testproject/node_modules/redis/node_modules/redis-parser/lib/parser.js:161:12) 
    at parseType (/home/dibeesh/obpnode6/testproject/node_modules/redis/node_modules/redis-parser/lib/parser.js:222:14)" 

Antwort

0

Stellen Sie sicher, dass redis Server ausgeführt wird, wenn Sie Ihre Anwendung ausführen.

+0

Danke..es läuft. Auch versucht, redis Sitzung in heroku db zu speichern. Aber derselbe Fehler. – Dibish

+1

Ich denke, dass Ihre ** Redis-Server-Version alt ist. Wenn ja, versuchen Sie einige aktuelle Version. Siehe untenstehenden Link, https: //github.com/tj/connect-redis/issues/165 –

Verwandte Themen