繁体   English   中英

使用 sequelize 原始查询 node.js 在结果中将 tinyint 字段转换为布尔值

[英]convert tinyint field as boolean in result using sequelize raw query node.js

我有一个问题,当我在 sequelize 中使用原始查询时,选择查询返回的 tinyint 字段是整数而不是true / false

这是代码:

router.route('/').get(function (req, resp) {
    sequelize.query("select * from territory_device", {model: territoryDevice}).then(result => {
        resp.send(result)
    })
})

这是我收到的结果:

结果

尽管我将字段is_active定义为模型中的布尔值,但它以整数形式返回,并且我使用的是 MySQL 方言。

问题是mysql方面。 Mysql 为布尔数据类型返回 0 或 1。 您可以在程序中更改数据类型或仅处理 0 或 1

而不是使用{raw: true} ,您可以获取 Sequelize 的包装器并在返回的响应上使用.toJSON()方法转换响应。

那么只要它在 Sequelize 的模型对象中的 DataType.BOOLEAN ,您就会将 tinyint 解析为布尔值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM