2016-04-27 67 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, 
})); 

財產「身份證」,這是我的設置,這是我的代碼Express會話無法設置的不確定

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

我會後(登錄),我保存的ID在會話,但這個代碼總是犯錯不能設置屬性...我怎麼能修復它... ... 感謝您的回答

+0

發生這種情況會導致您傳遞'save_session(req)'userId,而userId沒有'session.id' – Sapikelio

回答

1

這種情況導致您通過userId作爲save_session(req)參數。那麼你在做req.session.id = req;你的情況和userId.session.id = userId;一樣。錯誤通知你,userId還沒有session財產(Obsiously)。所有你需要的是通過requserId作爲參數。像這樣改變你的代碼。

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 
} 

我希望它有幫助。

+0

謝謝您的支持!但我也有同樣的錯誤, 我控制檯日誌請求和ID值請求顯示[對象對象]和ID值顯示我的ID值我能做什麼...... –

+0

mmmmm print'console.log(req.session.id) '並告訴我什麼價值顯示 – Sapikelio

+0

我對你的幫助感到抱歉,我對我使用護照的會話感到遺憾:'(感謝你的幫助保佑你 –