如何使用 typeorm 在嵌套 js 中存储大整数

Posted

技术标签:

【中文标题】如何使用 typeorm 在嵌套 js 中存储大整数【英文标题】:How to store big int in nest js using typeorm 【发布时间】:2020-05-12 14:54:55 【问题描述】:

some.entity.ts

amount:number

但是当我在我的 postgres 中存储一个非常大的数据时,它会抛出错误 '''integer out of range'''

我的问题是如何使用 typeorm 将 Big Int 存储为 psql 中的类型

【问题讨论】:

【参考方案1】:

在@Column 装饰器中定义类型bigint

@Column(type: 'bigint')
columnName: string;

注意:基于TypeOrm documentation bigint 映射到string

【讨论】:

整数的长度如何 JS 也有一个 BigInt 类型,可以使用 transformer 选项映射到/映射。 (注:JS中的BigInt是任意大的,不只是8个字节。)【参考方案2】:

只需在TypeORM的配置中添加 bigNumberStrings: false 即可,如:

TypeOrmModule.forRoot(
  bigNumberStrings: false,
  ...config.database,
),

那么bigint会返回数字类型。

【讨论】:

以上是关于如何使用 typeorm 在嵌套 js 中存储大整数的主要内容,如果未能解决你的问题,请参考以下文章

在 Nestjs 中注入 Tree Typeorm 存储库

TypeORM Apollo 嵌套查询解析器

Nest js 和 typeorm 自定义存储库问题

TypeORM 保存嵌套对象

NestJS + Typeorm + Graphql:嵌套关系中 DTO 的正确设计模式

NestJS 基于接口注入自定义 TypeOrm 存储库