2016-08-06 11 views
-1

私はnode.jsでmongodbを使って作業しています。私は配列を作成し、すべての値をプッシュしようとしましたが、それは動作しません。下記のコードを参照してください。値がnode.jsの配列にプッシュされない

マイルート:

router.get('/loadLastdata/:rid', loadLastdata); 

マイ関数:F以来

########### Array Value ############### 
[] 
########### Array Value ############### 

############ In Loop ############## 
[ { __v: 0, 
    _id: 57a5d4afaa21a18c247728c5, 
    rid_id: '57a2029e0678a6234070e415',} ] 
############ In Loop ############## 

############ In Loop ############## 
[ { __v: 0, 
    _id: 57a5e15c86b0c2c528063b27, 
    rid: '57a20d56d2472b9043052d39', 
} ] 

############ In Loop ############## 
+0

forループが実行される前に、配列結果をチェックしています。実際の結果を得るには、forループの終了直後にconsole.log(arrayDefine)を追加するだけです – jerry

答えて

2

:端末コンソールで

var loadLastdata = function(req, res) 
{ 
     arrayDefine = new Array(); 
     History.find({rid:req.params.rid} , 
     function(err, historyres) 
     { 

      if(historyres) 
      { 
       for (var key in historyres) 
       { 
        console.log('########### In Loop ###############'); 
        console.log(historyres[key].data); 
        arrayDefine.push(historyres[key].data); 
        console.log('########### In Loop ###############'); 

        } 
       } 
      } 
     }).limit(1).sort({$natural:-1}); 
     console.log('########### Array Value ###############'); 
     console.log(arrayDefine); 
     console.log('########### Array Value ###############'); 
    } 

or-loopがコールバック内で定義されている場合、非同期に実行されます。したがって、forループの直後にログを追加してください。

var loadLastdata = function(req, res) 
    { 
    arrayDefine = new Array(); 
    History.find({rid:req.params.rid} , 
    function(err, historyres) 
    { 

     if(historyres) 
     { 
      for (var key in historyres) 
      { 
       console.log('########### In Loop ###############'); 
       console.log(historyres[key].data); 
       arrayDefine.push(historyres[key].data); 
       console.log('########### In Loop ###############'); 

       } 
      } 
      console.log('########### Array Value ###############'); 
      console.log(arrayDefine); 
      console.log('########### Array Value ###############'); 
     } 
    }).limit(1).sort({$natural:-1}); 

} 
関連する問題