Pretty straightforward here, but it seems I'm missing some nuance. I'm creating an array of promises, and using Q.all() to ensure that all inserts into a db are finished before shipping a response back to the client. However, it's never being called. How can I get the response to be sent?
    var promises = [];
    for(var i=0; i < rows.length; i++){
        // Insert new row here
        var def = Q.defer();
        promises.push(def.promise);
        var query = connection.query(createQuery(rows[i]), function(err, rows) {
          if(err) {
            console.log(err);
            return;
          }
        });
        query.on('end', function(){
            console.log(def);
            def.resolve();
        });
    }
    Q.all(promises).then(function() {
       res.json({success:true, rows: rows.length});
    });
 
     
    