node.js - Combine output of 2 queries in REST API -


i using node.js restify module. have rest api outputs result of single mysql query in json. here code of api;

var rest_api_get_list = function (app, url_name) {     function respond(req, res, next) {         var door_mac = req.query.door_mac;          var connection = own_mysql.getmysql_connection();          var query_str =                 "select doors.mac_addr, " +                 "sensors.sensor_type " +                 "from sensors " +                 "where (doors.mac_addr = ?) "             ;          var query_var = [door_mac];          var query = connection.query(query_str, query_var, function (err, rows, fields) {             //if (err) throw err;             if (err) {                 //throw err;                 console.log(err);                 logger.info(err);             }             else {                 res.send(rows);             }         });          return next();     }      app.get(url_name, respond); }; 

suppose have query looks this;

    var query_str_2 =             "select knobs.mac_addr, " +             "furniture.furniture_type " +             "from furnitures" +             "where (knobs.mac_addr = ?) "         ; 

i want combine output of 2 mysql queries query_str , query_str_2 , have rest api return result in json. how can done?

to clearer, thinking of code doing this;

var rest_api_get_list = function (app, url_name) {     function respond(req, res, next) {         var door_mac = req.query.door_mac;          var connection = own_mysql.getmysql_connection();          var query_str =                 "select doors.mac_addr, " +                 "sensors.sensor_type " +                 "from sensors " +                 "where (doors.mac_addr = ?) "             ;          var query_var = [door_mac];          var query = connection.query(query_str, query_var, function (err, rows_output_1, fields) {             //if (err) throw err;         });           var query_str_2 =             "select knobs.mac_addr, " +             "furniture.furniture_type " +             "from furnitures" +             "where (knobs.mac_addr = ?) "         ;          var query_2 = connection.query(query_str_2, query_var, function (err, rows_output_2, fields) {             //if (err) throw err;          });           //how display json output of rows_output_1 , rows_output_2?          return next();     }      app.get(url_name, respond); }; 

edit: started bounty attract answers use promises.

a module managing asynchronous control flow - async - can this.

for example:

function respond(req, res, next) {      var door_mac = req.query.door_mac;     var connection = own_mysql.getmysql_connection();     var query_var = [door_mac];      async.parallel([         function (callback) {              var query_str =                 "select doors.mac_addr, " +                 "sensors.sensor_type " +                 "from sensors " +                 "where (doors.mac_addr = ?) "             ;             connection.query(query_str, query_var, callback);          },         function (callback) {              var query_str_2 =                 "select knobs.mac_addr, " +                 "furniture.furniture_type " +                 "from furnitures" +                 "where (knobs.mac_addr = ?) "             ;             connection.query(query_str_2, query_var, callback);         }     ], function (error, results) {          // results[0] => result query_str         // results[1] => result query_str_2         // ... return next() or whatever     })        } 

Comments