Mysql的基本数据类型中并没有布尔型,之所以建表和数据操作中能够使用BOOLEAN是因为mysql将其作为了tinyint(1)的别名。用0表示false,1表示true。
但开发过程中,既然我们给某一字段定义为布尔型,那么在我们获取数据后,期望得到的必然是布尔值而不是0或1。因此我们可以在得到返回值后转换一下。
这里我使用的是mysql模块,该模块允许给typeCase属性设置一个回调函数。详见官网说明
connection.query({
sql: '...',
typeCast: function (field, next) {
if (field.type == 'TINY' && field.length == 1) {
return (field.string() == '1'); // 1 = true, 0 = false
}
return next();
}
});
但这也意味着使用该方法的项目不能使用tinyInt(1)类型了,自行取舍吧~
- 本文固定链接: http://zoufeng.net/2018/01/14/convert-tinyint-to-boolean-in-nodejs/
- 转载请注明: foam 2018年01月14日 于 foam 发表