5.3.3 轉換器

轉換器類別會在 JavaScript 類型和 MySQL 類型之間進行轉換。如果使用者提供 JavaScript 轉換器,它會用來讀取和寫入資料庫。

轉換器有幾個用途,包括以下用途

  • 在 MySQL DECIMAL 類型和使用者偏好的 JavaScript 固定精度實用程式庫之間進行轉換

  • 在 MySQL BIGINT 類型和使用者偏好的 JavaScript 大數實用程式庫之間進行轉換

  • 將任意應用程式物件序列化為字元或二進位欄

ndb 後端也使用轉換器來支援 SETENUM 欄。(mysql 後端不使用這些。)

Converter 類別具有此處定義的介面

function Converter() {}:

Converter.prototype = {
  "toDB"    : function(obj) {  },
  "fromDB"  : function(val) {  }
};

Converter 必須 實作以下兩個函數

  1. toDB(obj):將應用程式物件 obj 轉換成可儲存在資料庫中的格式。

  2. fromDB(val):將從資料庫讀取的值 val 轉換成應用程式物件格式。

每個函數都會傳回轉換的結果。

轉換器調用會以以下方式連結

  • 在寫入資料庫時,會先調用已註冊的 FieldConverter (如果有的話)。稍後,會調用任何已註冊的 TypeConverter

  • 在從資料庫讀取時,會先調用已註冊的 TypeConverter (如果有的話)。稍後,會調用任何已註冊的 FieldConverter