2017-02-08 1 views
0

現在、ノードリストapiプロジェクトで、データのリストのデータを取得したいところです。たとえば、特定のタグ(モバイル)と各post_idのpost_id([1,2,3 ....])のリストがmysqlデータベースから投稿タイトルと説明を取得したいとします。しかし、SQLクエリを呼び出すのは同期的です。sql queries synchrously

各投稿IDの結果を1つにまとめる方法を制御する方法。コードを呼び出す

私のDBはここにある:

var express = require('express'); 
var app  = express(); 
var bodyParser = require('body-parser'); // call body-parser 
var addData = require('./dbhandler/addData'); // call database handler to insertdata 
var getData = require('./dbhandler/getData'); 

//route function to get feeds by tags 
router.route('/postfeedsbytags/:tag') 
// get all new article feeds filtered by tag 
.get(function(req,res){ 
    var success; 
    console.log(req.params.tag) 
    var json_results = []; 
    getData.getPostFeedsByTag(req.params.tag,function(error, results, fields){ 
     if (!error){ 
      for (var i = 0; i < results.length; i++) { 
       getData.getPostFeedsByPostId(results[0]['post_id'],function(error, results, fields){ 
        if (!error){ 
         success = 1; 
         json_results.push(results[0]); 
         res.json({"success" : success, "datasets" : json_results}); 
        } else{ 
         success = 0; 
         console.log('Error while performing Query.'+error); 
         res.json({"success" : success}); 
        } 
       }); 
      } 
      // res.json({"success" : success, "datasets" : results}); 
     } else{ 
      success = 0; 
      console.log('Error while performing Query.'+error); 
      res.json({"success" : success}); 
     } 
    }); 
}); 
+0

どのようにしてpost_idを取得していますか?もしvia sqlが何らかの理由でpost_titleとpost_descriptionをその配列に含めることができなかったら、それをループしますか? – Dom

+0

投稿IDが – user3528954

+0

のタグ名をマップするテーブルがあります。コードを表示します。 Node.jsメソッドは通常非同期です。私が正しく集まったら、結果を組み合わせることができるようになりたいのですか?データを取得する限り、同期または非同期は問題になりません。 – Sangharsh

答えて

0

私はあなたが単一のクエリ内のすべての投稿を取得するには、クエリでIN演算子を使用し、それを反復処理することができると思います。

IN演算子を使用しない場合は、フロー制御にasyncライブラリを使用します。そこからasync.map関数を使うことができます。

関連する問題