2017-11-08 8 views
1

私は新しいユーザーのリストを取得するためにクエリを実行しています。クエリが正しいです。これは15人のユーザーを返します。私は結果セットをjavascript配列にプッシュしますが、結果セットの最後のレコードだけが保存されています。あなたはresponse.push(res);は、私がこれを行うコードの行で見ることができるようにjavascript-データベースから配列への結果セットの読み込みに失敗しました

var query = `SELECT * 
       FROM users 
       WHERE (status ='New')`; 
var query = connection.query(query), 
    response = []; // this array will contain the result of our db query 
query 
    .on('error', function (err) { 
     console.log(err); 
    }) 
    .on('result', function (res) { 
     // it fills our array looping on each user row inside the db 
     response.push(res); 
     /* 
     for (var key in res) {  
      if (res.hasOwnProperty(key)) response.push(res[key]); 
     } 
     */ 

    }) 
    .on('end', function() { 
     console.log('console') 
    }); 

は、ここに私のコードです。その下に私はいくつかの行をコメントしています。結果セットから各行をプッシュするオプションを試しましたが、結果が得られません。

+0

私は、コードの構文に問題があると思うが、むしろコードの非同期性、あなたは約束の内側にこのコードを包むと応答 – UchihaItachi

+0

を未チェックする前に、次のに解決しようとしていませんそれをどうやって行うのか。これはnodejs(Expressフレームワーク)で設定したサーバーです.UchihaItachi – Annabelle

+0

結果をどのようにテストしましたか?私はあなたのコードでそれが表示されません? –

答えて

0

ループ

for(var i in res){ 
    response.push(res[i]); 
} 
+0

私はこれを試しました。私はこれを行うか、私がコメントしたループを実行すると、結果セットから単一の行を反復し、その特定の行の各列を反復します。各列をレスポンス配列@Amal Dev – Annabelle

+0

の場所にプッシュします。console.dir(res)を使用して結果構造をチェックします。 –

+0

RowDataPacket { id:1700、 ステータス: 'New'、 u_name:null、 u_id:null} – Annabelle

0

のためにしてみてください私は多分、あなたのテストを過小評価していますが、多分間違った場所でresultをご確認ください。

'end'コールバックで行う必要があります。

.on('end', function() { 
    console.dir(res) 
}); 
関連する問題