我正在使用Loopback 3.22和Loopback-connector-mysql 5.3.1。
当我将环回配置为将BIT(1)
的mysql列配置为boolean
时,它总是返回true
"isActive": {
"type": "Boolean",
"required": false,
"length": null,
"precision": 1,
"scale": null,
"mysql": {
"columnName": "is_active",
"dataType": "bit",
"dataLength": null,
"dataPrecision": 1,
"dataScale": null,
"nullable": "Y"
}
},
我在这里浪费了很多时间,甚至尝试使用before save
钩子,但是之前进行了列类型验证。
设置列类型Binary
会将问题推到前端。
答案 0 :(得分:3)
这是LoopBack的MySQL连接器的已知错误,请参见以下GitHub问题:https://github.com/strongloop/loopback-connector-mysql/issues/325
答案 1 :(得分:0)
对于困在这里的任何人,我会肮脏地修补MySQL.prototype.fromColumnValue
,以便使此功能正常工作 直到问题得到解决
let MySQL = require("loopback-connector-mysql/lib/mysql").MySQL;
...
case 'Boolean':
// extra case of Buffer(1)
if (val instanceof Buffer && val.length === 1) {
val = Boolean(val[0]);
} else {
// default case
val = Boolean(val);
}
...