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)"
Danke..es läuft. Auch versucht, redis Sitzung in heroku db zu speichern. Aber derselbe Fehler. – Dibish
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 –