2012-11-15 62 views
0

我有我嘗試了一些數據存儲到會話變量下面的代碼:的NodeJS存儲會話數據exprss

//Capture IP geo-location info if it hasn't been set for this session 
    app.all('*', function(req, res, next){ 
    //Stuff to run once for each user session 
    if (!req.session.runOnce){ 
    req.session.runOnce = true; 
    if (!req.session.ipinfo || 1){ 
     //add user ip to sessions for use on who's online 
     //if we're localhost, give it an 8.8.8.8 IP just so we can test something 
     if (req.ip == '127.0.0.1'){ip = '8.8.8.8'; }else{ip = req.ip; } 
    ip2location(ip, config.ipinfodb.apiKey, function(error, data){ 
     var ipData = JSON.parse(data); 
     req.session.ipData = ipData; 
     }); 

     next(); 
     }else{ 
     next(); 
     } 
    }else{ 
     next(); 
    } 
    }); 

的session.ipData不被存儲。我可以將它存儲在對ip2location的調用之外,並且可以在調用ip2location的過程中獲得會話數據。

任何想法: 感謝

+0

在代碼中,你不檢查錯誤。數據是否正確到位? – Max

+0

是的,ipData正在獲取數據 – rstewart

+0

您正在設置req.session.ipData,但測試req.session.ipinfo –

回答

0

我發現這個問題。 next()回調需要在ip2Location調用中。