我是 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/