0

セッション変数にデータを保存しようとしている次のコードがあります。

//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 への呼び出しの内部でセッション データを取得できます。

任意のアイデア: ありがとう

4

1 に答える 1

0

問題が見つかりました。next() コールバックは ip2Location 呼び出しに含まれている必要があります。

于 2012-11-15T19:39:10.383 に答える