2014-02-26 97 views
0

我正在使用JavaScript製作網絡應用程序。我打算使用Node.js將應用程序連接到現有的MySQL數據庫。Node.js&MySQL - JavaScript應用程序 - 如何與離線和在線數據庫交互

首先,將節點代碼寫入與我的應用程序相同的.js文件中?或者它是一個單獨的文件?

我需要數據在任何時候都是最新的(即使您要關閉瀏覽器並重新打開它,並且即使在用戶沒有wifi連接的情況下也是如此),所以我的想法是不斷地更新本地設備的數據庫,然後間歇性地更新MySQL數據庫。這是最好的策略嗎?如果是這樣,Node如何與離線數據庫和MySQL交談?

回答

0

首先,節點代碼是否會寫入與我的應用程序相同的.js文件?或者它是一個單獨的文件?

這是可能,讓您的客戶端的JavaScript在同一個文件作爲您的服務器端JavaScript,但它沒有任何意義這樣做。他們是單獨的程序。 (另一方面,圖書館文件則是另一回事)。

所以我的想法是不斷更新本地設備的數據庫,然後間歇性地更新MySQL數據庫。

使用本地數據庫並同步到共享數據庫是常用策略。儘管如此,您確實需要處理衝突的更新。

如果是這樣,Node如何與脫機db和MySQL交談?

Node.js無法與離線數據庫進行通信,至少不會直接進行。

您將在瀏覽器中運行Web應用程序。它將使用客戶端JavaScript與客戶端數據庫以及與服務器通信的一些方法(通常通過發送HTTP和HTTP服務來實現這一點)。

然後你將有一個運行在Node.js中的服務器端應用程序。它將使用帶有服務器端MySQL數據庫的服務器端JavaScript以及與客戶端進行通信的一些手段(即,託管Web服務的HTTP服務器)。

+0

這是一個單頁面應用程序。我正在將我的服務器通信從PHP轉換爲NodeJS。當你說'通過發送JSON與服務器通信'時,你的意思是使用AJAX的方式與我在PHP中使用的方式相同? – EAB

+0

是的,這是通常的做法。 – Quentin

+0

我在考慮使用NodeJS,因爲我認爲使用我的客戶端JS會很簡單。現在我明白了,情況並非如此,我認爲所有的好處都是NodeJS的速度(非阻塞)。這聽起來像你知道你在說什麼。 NodeJS還有什麼其他的好處可以讓我相信這個工作的轉變? – EAB

相關問題