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调用任何已注册的。