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