簡體   English   中英

Nest Js TypeORM repository.update 方法不更改 object 的多個字段

[英]Nest Js TypeORM repository.update method not changing multiple fields of an object

在我的 Nest js 項目中構建了一個端點,當用戶提交旨在編輯現有組織的表單時,該端點會觸發此服務 function:

async updateOrganization(
    organization: UpdateOrganizationDto,
  ): Promise<Organization> {
    this.organizationRepository.update(organization.organization.id, {
      lastChangedBy: organization.profile.id,
      orgName: organization.organization.orgName,
      orgLead: organization.organization.orgLead,
      orgAsst: organization.organization.orgAsst,
      from: organization.organization.from,
      to: organization.organization.to,
      teamWideReporting: organization.organization.teamWideReporting,
      leadsAddTeamMembers: organization.organization.leadsAddTeamMembers,
      leadsRemoveTeamMembers: organization.organization.leadsRemoveTeamMembers,
    });
    return organization.organization;

用戶可以在我們的 UI 上編輯 9 個可能的字段。 每當用戶點擊我們的更新組織(在此處使用 TypeORM PUT 請求)時,我希望后端對所有可能的字段執行檢查。

當我將此服務 function 設置為僅更改一個字段時,一切正常,例如:

async updateOrganization(
    organization: UpdateOrganizationDto,
  ): Promise<Organization> {
    this.organizationRepository.update(organization.organization.id, {
      orgName: organization.organization.orgName
    });
    return organization.organization;

但是,我想要一個一站式商店來解釋對后端的單個請求中的所有可能更新。

我希望這只是一個簡單的 typeOrm 語法問題,我們將不勝感激,謝謝!

確保等待從.update()

async updateOrganization(
    organization: UpdateOrganizationDto,
  ): Promise<Organization> {
    // let the promise resolve
    await this.organizationRepository.update(organization.organization.id, {
      lastChangedBy: organization.profile.id,
      orgName: organization.organization.orgName,
      orgLead: organization.organization.orgLead,
      orgAsst: organization.organization.orgAsst,
      from: organization.organization.from,
      to: organization.organization.to,
      teamWideReporting: organization.organization.teamWideReporting,
      leadsAddTeamMembers: organization.organization.leadsAddTeamMembers,
      leadsRemoveTeamMembers: organization.organization.leadsRemoveTeamMembers,
    });
    return organization.organization;

它也可能是實體/模式的問題。 您可以在 typeorm 配置(配置數據庫連接的位置)中打開查詢和錯誤日志記錄: https://orkhan.gitbook.io/typeorm/docs/logging

{
    host: "localhost",
    ...
    logging: ["query", "error"]
}

如果您仍然遇到問題,請更新您與組織實體的帖子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM