2016-04-06 93 views
2

我需要重新運行node.js查詢以獲取最新條目。這是我迄今爲止所嘗試過的。Node.JS再次運行Node-Msql查詢而不停止node.js腳本

setTimeout(function() { 

connection.query('SELECT * FROM News ORDER BY Content DESC LIMIT 1', function(err, rows, fields){ 
var News = rows[0].Content; 
}, 2000); 

我還以爲這會工作,再次運行查詢時計時器達到0,我知道2秒鐘將十分有點短,這只是用於測試目的。

它是express.js web服務器的所有部分,當我導航到頁面時,它不會使用最新條目更新文本。處理這個問題的最佳方法是什麼?我必須重新啓動腳本以獲得最新的條目,我希望不必重新啓動腳本。

+0

你能否提供更多的細節?查詢是執行異步的,所以你需要確保你正確地處理你的req/resp以及這個查詢。 setTimeout不會阻止將響應返回給客戶端。 – scottjustin5000

+0

什麼樣的細節?我只需要知道如何重新運行mysql查詢。 – FlerrElectronics

+0

您是否正在運行相同的查詢兩次,並使用setTimeout試圖延遲第二次運行? – scottjustin5000

回答

0

我覺得問題是你需要做一個新的請求/響應。

setTimeout應在瀏覽器中設置,而不是在node.js中。

因此,在你想要的n秒後,你做一個新的請求/響應,然後對Mysql DB做一個新的查詢。

現在,另一方面可能是我們有一個緩存resulSet。爲了避免緩存嘗試改變你的查詢選擇文本。例如寫小寫字母

select * from news order by content desc limit 1 
+0

我使用新聞變量顯示結果,其更新一次,當數據庫查詢,但我不能做更多,然後1 mysql查詢相同的代碼? – FlerrElectronics

+0

我在說什麼你是在第二次查詢運行之前發送響應......所以響應與第一次調用不是第二次相關...... setTimeout不會停止運行的下一行。 –

+0

我正在使用計時器,以便當它用完時,它會重新運行查詢?我很困惑你在說什麼。 – FlerrElectronics