2017-03-07 8 views
0

私はAPIを使ってデータを照会し、結果をjson形式で返します。 api.get内のクエリを呼び出してres.send(rows)を設定しても問題ありませんが、別のメソッドで同じメソッドを呼び出す必要があるので、必要なときにいつでもメソッドを呼び出すことができます。外に出ると結果は空に戻ります。NodeJs Mysqlは空の結果を返します

var customerRows[] 
app.get('/customers', function(req, res) { 
    getCustomers(); 
    res.json({ 
     customers : customerRows 
    }); 
}); 

function getCustomersQuery(callback) { 
    var customersDataQuery = mysqlConnection.query('SELECT * from customer_info', function(err, rows, fields) { 
     if (!err) { 
      if (rows) { 
       callback(null, rows); 
      } 
     } else { 
      callback(err, null); 
      console.log('Error while performing Query.'); 
     } 
    }); 
} 

function getCustomers() { 
    getCustomersQuery(function(err, result) { 
     if (err) { 
      console.log(err); 
     } else { 
      customerRows.push(result); 
      console.log(customerRows)//prints values 
     } 
    }); 
    console.log("Result : "+customerRows);//prints empty 
} 

私は私のグローバル変数にcustomerRowsを結果を設定しようとしているが、それは空を返します。

+0

たぶん、あなたは最後にconsole.logはmysqlのクエリ –

答えて

0

使用このコード

app.get('/customers', function(req, res) {  
    getCustomersQuery(function(err, result) { 
     if (err) { 
      console.log(err); 
     }   
     res.json({ 
      customers : result 
     }); 
    }); 
}); 

function getCustomersQuery(callback) { 
    var customersDataQuery = mysqlConnection.query('SELECT * from customer_info', function(err, rows, fields) { 
     if (!err) { 
      if (rows) { 
       callback(null, rows); 
      } 
     } else { 
      callback(err, null); 
      console.log('Error while performing Query.'); 
     } 
    }); 
} 
+0

を実行する前に解雇されます。..非同期関数の概念を知っている必要があります、それは答えではないので、私は、ないような答えを、このフラグを設定 - それはですちょうどいくつかのコード。私は物事がより少なく取り除かれるのを見ました、これはどのように受け入れられる答えですか? –

関連する問題