2017-03-07 197 views
0

我有查詢數據並以json格式返回結果的api。如果我調用api.get中的查詢並設置res.send(行)它工作正常,但我需要在不同的方法中調用相同的方法,所以我想我可以在外面編寫它,並在需要時調用該方法。但結果在外面時會返回空白。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

之前被解僱我檢舉這個不是一個答案,因爲它不是一個答案 - 這是隻是一些代碼。我已經看到事情少了,這是一個可以接受的答案? –