Javascript 更新实体中的值时使用扩展运算符进行类型化

Javascript 更新实体中的值时使用扩展运算符进行类型化,javascript,typescript,typeorm,Javascript,Typescript,Typeorm,我正在学习使用TypeForm和Typescript构建后端,只是想问一下为什么spread操作符在更新实体时不起作用 假设我有一个用户具有一系列属性: 名字 电子邮件 密码 在前端,我有一个表单,允许我更新这些值中的任何一个 如何使用一个路由更新所有这些值中的一个 我正在尝试这样做,它告诉我更新值未定义: @PUT @Path("/:email") async updateUser(@PathParm("email") email: string

我正在学习使用TypeForm和Typescript构建后端,只是想问一下为什么spread操作符在更新实体时不起作用

假设我有一个用户具有一系列属性:

  • 名字
  • 电子邮件
  • 密码
在前端,我有一个表单,允许我更新这些值中的任何一个

如何使用一个路由更新所有这些值中的一个

我正在尝试这样做,它告诉我更新值未定义:


@PUT 
@Path("/:email")
async updateUser(@PathParm("email") email: string, data: User):Promise<object> {
  try {
    const user = await getRepository(User)
      .createQueryBuilder()
      .update(User)
      .set({ ...data }) // the issue
      .where('email = :email', { email })
      .execute()
   return user
 catch(e) {
   return e
 }

@放
@路径(“/:电子邮件”)
async updateUser(@PathParm(“电子邮件”)电子邮件:字符串,数据:用户):承诺{
试一试{
const user=wait getRepository(用户)
.createQueryBuilder()
.更新(用户)
.set({…data})//问题
.where('email=:email',{email})
.execute()
返回用户
捕获(e){
返回e
}
我认为在这种情况下,排列操作符可以正常工作


或者我必须详细地写出要设置的用户实体的每个属性吗?

我刚刚尝试使用“原始”数据与PostMan一起使用,它工作了……您使用的http框架是什么?数据到底是什么??它有自己的可枚举属性吗?因此,我最终在这方面取得了进展。我用POSTMA发送了表单数据N、 但是当我切换到
x-www-form-urlencoded
时,它工作得很好。如果我使用它,我需要一个表单数据解析器