NodeJS 为什么Mikro-orm把数字作为字符串发送回来?

rwqw0loc  于 2023-06-05  发布在  Node.js
关注(0)|答案(1)|浏览(166)

我在User实体上有一个postCount属性,看起来像这样:

@Property({columnType: 'bigint', nullable: false, default: 0})
postsCount: number;

我希望它返回为一个数字,但它返回一个字符串。
我试过使用序列化器将其转换为数字,但对于我的用例,我有时会从我的API返回一个修改过的用户实体(我相信这绕过了序列化器)。
是否有其他方法可以在定义属性时返回属性?
先谢谢你了!

ny6fqffe

ny6fqffe1#

这很可能是底层数据库驱动程序预期的正确行为,如Postgres的情况
如果您使用Postgres,您可以通过以下方式自定义Map:

// Converts floats coming from db to a number
pg.types.setTypeParser(1700, function (val) {
    return parseFloat(val)
})
// Bigints as numbers not as strings
pg.types.setTypeParser(20, 'text', parseInt)

其中pg对象的引用可以从导入中获得

import pg from 'pg'

但我不相信这是获得它的理想方式。

相关问题