2016-04-27 4 views
1
var redis = require('redis'); 
var router = express.Router(); 
var mysql = require('mysql'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var client = redis.createClient(); 
var session = require('express-session'), 
RedisStore = require('connect-redis')(session); 
var app = express(); 
app.use(cookieParser); 
app.use(session({ 
    store : new RedisStore({ 
    host:'localhost', 
    port:7351, 
    maxAge: 300000, 
    client:client, 
    ttl:260 
    } 
), 
secret:'dafdsa', 
resave:false, 
saveUninitialized:true, 
})); 

diese meine Einstellung ist, und dies ist mein CodeExpress-Sitzung kann nicht eingestellt Eigenschaft ‚id‘ undefinierter

router.post('/', function(req, res, next) { 
    var id = req.body.userid; 
    var passwd = req.body.password; 
    var sess = req.session; 
    var login_chk = pool.getConnection(function(err,connection){ 
     connection.query('SELECT U_passwd FROM Member WHERE U_id = ?',[id],function(err,row,req){ 
     if(err)console.log(err); 
     var sqlpasswd = row[0].U_passwd; 
     var answer = 0; 
     answer = passwd_chk(passwd,sqlpasswd); 
     if(answer ===1){ 
      save_session(id); 
      res.render('main'); 
     } 


var save_session = function(req){ 
    req.session.id = req; 
} 

ich werde schreiben (Login) und i speichern id in der Sitzung aber dieser Code wird immer irren kann Eigenschaft nicht einstellen ... wie kann ich es beheben? ... danke für die Antwort

+0

Dies passiert, weil Sie übergeben als 'save_session (req)' die userId, und userId hat nicht 'session.id' – Sapikelio

Antwort

1

Dies passiert, weil Sie userId als save_session(req) Argument passieren. Dann machen Sie req.session.id = req; in Ihrem Fall das gleiche wie userId.session.id = userId;. Der Fehler bemerkt Sie, dass userId keine session Eigenschaft (Obsiously) hat. Alles, was Sie brauchen, ist req und userId als Argumente übergeben. Ändere deinen Code so.

router.post('/', function(req, res, next) { 
    var id = req.body.userid; 
    var passwd = req.body.password; 
    var sess = req.session; 
    var login_chk = pool.getConnection(function(err,connection){ 
     connection.query('SELECT U_passwd FROM Member WHERE U_id = ?',[id],function(err,row,req){ 
     if(err)console.log(err); 
     var sqlpasswd = row[0].U_passwd; 
     var answer = 0; 
     answer = passwd_chk(passwd,sqlpasswd); 
     if(answer ===1){ 
      save_session(req,id);  <--- Change this 
      res.render('main'); 
     } 


var save_session = function(req,id){ <--- Change this 
    req.session.id = id;    <--- Change this 
} 

Ich hoffe, es hilft.

+0

danke für Ihre Antwort! aber es gibt denselben Fehler für mich, ich Konsole Protokoll req und ID-Wert req show [Objekt Objekt] und ID-Wert zeigen meine ID-Wert, was kann ich tun .... –

+0

mmmmm print 'console.log (req.session.id) 'und sagen Sie mir, welcher Wert zeigt – Sapikelio

+0

ich bedauere über Ihre Hilfe Ich bereue Session Ich benutze Reisepass: '(Danke für Ihre Hilfe segne Sie –

Verwandte Themen