typeorm - 强制 TypeORM Entity.create 创建一个对象实例

标签 typeorm typeorm-activerecord

我是 typeORM 的新手,我正在使用 Active-record 模式制作一个基本的 CRUD API

我有一个非常基本的实体,为了将其保存到数据库,我使用以下代码:

const newUser = User.create(request.body)

但是当我尝试编译时,User.create 返回一个 User[] 对象而不是 User。

如果我使用对象手动调用该方法,例如 User.create({username: request.body.username, ... }) 我成功得到一个 User,但是当我使用 request.body 时,无论我是否使用与请求正文完全相同的对象,我总是会得到一个 User[]

我检查了文档,User.create 实际上有一个覆盖,如果传递一个类似对象 参数,则会返回单个 User,但会生成一个 User[] 如果传递类似数组的参数。

我尝试了很多东西,比如解构 User.create({... request.body}) 等,但它不起作用。

我认为这非常令人困惑并且容易出错,因为 User.create 使用对象和主体请求的行为会有所不同。

是否存在类似 User.createOne() 或类似的东西?这样我就可以强制该行为始终创建一个对象? 我什么也没找到。

最佳答案

您可以通过首先将请求正文强制转换为对象来强制执行

const newUser = User.create(request.body) // User[]
const newUser = User.create(request.body as Object) // User

关于typeorm - 强制 TypeORM Entity.create 创建一个对象实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70417124/

相关文章:

sql - TypeORM:列必须出现在 GROUP BY 子句中或在聚合函数中使用

node.js - TypeORM 树级联移除

node.js - 存储 GeoJson 点并在给定距离/半径内查找点 | NODEJS、Postgres、NestJs、TypeOrm

database - 使用 typeORM 搜索早于日期的数据

javascript - TypeScript 中未找到存储库错误,当我通过 typeorm 连接到 MySQL 时遇到该错误

typeorm - 在 Postgres 数据库中创建分区表

node.js - 如何插入多个实体并在 TypeORM 中返回它们