我正在編寫一些非web應用程序幫助程序,並且遇到了對同步查詢調用的需求。Node.js和node-mysql數據庫查詢 - 需要同步代碼幫助
基本上,在一個循環內,我需要檢查數據庫,看看值是否存在。如果沒有,則插入該值。目前,在node-mysql中,我只能使用回調來工作。因此,node.js將該調用視爲異步,並在查詢完成之前繼續處理我的請求。這是一個很大的問題,因爲最終它可能會插入重複項,因爲它們在隊列中。
理想解決方案 - 不起作用。結果實際上是客戶的對象,我無法找到其中的實際結果。但是,這確實使其同步。
results = client.query('SELECT COUNT(md5) as md5Count FROM table WHERE md5 = "' + md5 + '"')
以下不起作用。 Node.js將其視爲異步,而outerResult仍然是客戶端的對象。
outerResult = client.query('SELECT COUNT(md5) as md5Count FROM board WHERE md5 = "' + md5 + '"', function selectCb(err, results, fields) {console.log(results);});
任何幫助表示讚賞。
作爲一個方面說明,不要像這樣形成您的查詢,因爲您將SQL注入可能性引入到您的應用程序中。請參閱http://stackoverflow.com/a/15779796/253594 – Vetsin 2013-07-10 03:10:28