接著要練習的是如何讀取Parse上的資料庫,而我們訂了一個目標就是再做一次訂便當吧!新增一個DinBenDon(訂便當)的專案,並建立一個ProductsList資料表,再一筆一筆輸入各種類便當的資料。
為了讓大家方便練習,我們將上述ProductsList資料表匯出儲存在雲端硬碟上,就直接下載這個JSON檔案吧。下載之後,就可以直接在上述頁面以Import(匯入)方式建立整個資料表。
參閱Parse.com的Javascript指南,瞭解其查詢語法範例:
var GameScore = Parse.Object.extend("GameScore");
var query = new Parse.Query(GameScore);
query.equalTo("playerName", "Dan Stemkoski");
query.find({
success: function(results) {
alert("Successfully retrieved " + results.length + " scores.");
// Do something with the returned Parse.Object values
for (var i = 0; i < results.length; i++) {
var object = results[i];
alert(object.id + ' - ' + object.get('playerName'));
}
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
上述程式碼大致是進行下列動作:
- 使用 Parse.Object.extend 方法指定要存取的子類別
- 然後進行 new Query of that class
- 如果要找出資料表裡面符合某種條件的資料就用equalTo方法來查詢
- 查詢之後,在find方法裡面定義如果有找到符合查詢條件的資料(success)要進行哪些處理動作,而沒有符合的(error)又要進行怎樣的動作。
- 很明顯的,上述success的處理就是以迴圈將每筆資料get到手。
於是,將第一個練習index.html的42行 Parse.initialize("APPLICATION_ID", "JAVASCRIPT_KEY"); 替換成這個專案的keys(如下所示頁面也可查詢到):
然後,將44~53行以下列程式碼取代:
var ProductsList = Parse.Object.extend("ProductsList");
var query = new Parse.Query(ProductsList);
// query.equalTo("欄位名稱", "欄位內容"); 不執行這行就等於是讀出全部的記錄
query.find({
success: function(results) {
alert("Successfully retrieved " + results.length + " records.");
// Do something with the returned Parse.Object values
for (var i = 0; i < results.length; i++) {
var object = results[i];
alert(object.id + ' - ' + object.get('Pname'));
}
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
如果上述部分都正確改寫了,以瀏覽器開啟index.html執行,應該就會看到一直跳出對話框顯示每種便當名稱,這就代表確實已經成功讀取雲端資料庫囉。