Nodejs Synchrone Pour chaque boucle

Je veux faire un pour chaque boucle, mais qu'il fonctionne de manière synchrone. Chaque itération de la boucle qui va faire un http.obtenir de l'appel et qui sera de retour json pour insérer les valeurs dans une base de données. Le problème est que la boucle for s'exécute de façon asynchrone et qui cause l'ensemble de l'http.arrive à tous de fonctionner à la fois et ma base de données n'est pas l'insertion de toutes les données.Je suis à l'aide asynchrone foreach pour essayer de faire ce que je veux faire, mais je n'ai pas à l'utiliser si je peux faire de la bonne façon.

mCardImport = require('m_cardImport.js');
var http = require('http');
app.get('/path/hi', function(req, res) {

mCardImport.getList(function(sets) {
  forEach(sets, function(item, index, arr) {
    theUrl = 'http://' + sets.set_code + '.json';
    http.get(theUrl, function(res) {

      var jsonData = '';
      res.on('data', function(chunk) {
        jsonData += chunk;
      });

      res.on('end', function() {
        var theResponse = JSON.parse(jsonData);
        mCardImport.importResponse(theResponse.list, theResponse.code, function(theSet) {
          console.log("SET: " + theSet);
        });
      });
    });
  });
});
});

et mon modèle

exports.importResponse = function(cardList, setCode, callback) {

mysqlLib.getConnection(function(err, connection) {

forEach(cardList, function(item, index, arr) {

  var theSql = "INSERT INTO table (name, code, multid, collector_set_num) VALUES "
   + "(?, ?, ?, ?) ON DUPLICATE KEY UPDATE id=id";
  connection.query(theSql, [item.name, setCode, item.multid, item.number], function(err, results) {
    if (err) {
      console.log(err);
    };
  });
});
});
callback(setCode);
};

source d'informationauteur user3447415