首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法读取实现其他模型的Nest.js模型上未定义的属性

无法读取实现其他模型的Nest.js模型上未定义的属性
EN

Stack Overflow用户
提问于 2022-05-23 14:55:17
回答 1查看 1.1K关注 0票数 0

最近,我开始在Nest.js上获得类型错误(我认为是在升级到v8之后),并且无法解决它们。这是在模特身上。这是我的地盘模型。

代码语言:javascript
复制
import { Field, ObjectType } from '@nestjs/graphql'
import { Region } from '@biztobiz/api/region/data-access'
import { User } from '@biztobiz/api/user/data-access'

@ObjectType()
export class Territory {
  @Field()
  id: string

  @Field()
  createdAt: Date

  @Field()
  updatedAt: Date

  @Field({ nullable: true })
  name?: string

  @Field({ nullable: true })
  manager?: User

  @Field(() => [Region], { nullable: true })
  regions?: Region[]
}

这是我的用户模型。

代码语言:javascript
复制
import { Field, Int, ObjectType } from '@nestjs/graphql'
import { Role } from './role.enum'
import { UserStatus } from './user-status.enum'
import { Chapter } from '@biztobiz/api/chapter/data-access'
import { Company } from '@biztobiz/api/company/data-access'
import { Territory } from '@biztobiz/api/territory/data-access'
import { Region } from '@biztobiz/api/region/data-access'
import { Upload } from '@biztobiz/api/upload/data-access'

@ObjectType()
export class User {
  @Field({ nullable: true })
  id?: string

  @Field({ nullable: true })
  createdAt?: Date

  @Field({ nullable: true })
  updatedAt?: Date

  @Field({ nullable: true })
  firstName?: string

  @Field({ nullable: true })
  lastName?: string

  @Field({ nullable: true })
  avatarUrl?: string

  @Field({ nullable: true })
  showGravatar?: boolean

  @Field(() => Role, { nullable: true })
  role?: Role

  @Field({ nullable: true })
  developer?: boolean

  @Field({ nullable: true })
  bio?: string

  @Field({ nullable: true })
  email?: string

  @Field({ nullable: true })
  phone?: string

  @Field({ nullable: true })
  location?: string

  @Field({ nullable: true })
  facebook?: string

  @Field({ nullable: true })
  twitter?: string

  @Field({ nullable: true })
  instagram?: string

  @Field({ nullable: true })
  linkedin?: string

  @Field({ nullable: true })
  youtube?: string

  @Field({ nullable: true })
  website?: string

  @Field({ nullable: true })
  lastSeen?: Date

  @Field({ nullable: true })
  industry?: string

  @Field({ nullable: true })
  timeInIndustry?: string

  @Field({ nullable: true })
  address?: string

  @Field({ nullable: true })
  address2?: string

  @Field({ nullable: true })
  applicationDate?: Date

  @Field({ nullable: true })
  cell?: string

  @Field({ nullable: true })
  chapterTitle?: string

  @Field({ nullable: true })
  city?: string

  @Field({ nullable: true })
  comments?: string

  @Field({ nullable: true })
  company?: string

  @Field({ nullable: true })
  fax?: string

  @Field({ nullable: true })
  hear?: string

  @Field({ nullable: true })
  hearOther?: string

  @Field({ nullable: true })
  inactiveDate?: Date

  @Field({ nullable: true })
  inquiryDate?: Date

  @Field({ nullable: true })
  internalComments?: string

  @Field({ nullable: true })
  launchComplete?: boolean

  @Field({ nullable: true })
  membershipDate?: Date

  @Field({ nullable: true })
  mentorName?: string

  @Field({ nullable: true })
  merchantCircle?: string

  @Field({ nullable: true })
  multipleBusinesses?: boolean

  @Field({ nullable: true })
  multipleLocations?: boolean

  @Field({ nullable: true })
  numberOfEmployees?: number

  @Field({ nullable: true })
  organizer?: number

  @Field({ nullable: true })
  otherBusinesses?: string

  @Field({ nullable: true })
  otherLocations?: string

  @Field({ nullable: true })
  postcode?: string

  @Field({ nullable: true })
  promoter?: number

  @Field({ nullable: true })
  recognized?: number

  @Field({ nullable: true })
  renewalDate?: Date

  @Field({ nullable: true })
  salesAgentName?: string

  @Field({ nullable: true })
  state?: string

  @Field({ nullable: true })
  strategizer?: number

  @Field({ nullable: true })
  substitute?: boolean

  @Field({ nullable: true })
  tagline?: string

  @Field({ nullable: true })
  terminatedByName?: string

  @Field({ nullable: true })
  terminationDate?: Date

  @Field({ nullable: true })
  terminationComments?: string

  @Field({ nullable: true })
  terminationReason?: string

  @Field({ nullable: true })
  thinker?: number

  @Field({ nullable: true })
  title?: string

  @Field({ nullable: true })
  transferDate?: Date

  @Field({ nullable: true })
  type?: string

  @Field({ nullable: true })
  vet?: boolean

  @Field(() => UserStatus, { nullable: true })
  status?: UserStatus

  @Field({ nullable: true })
  notifyByEmail?: boolean

  @Field({ nullable: true })
  notifyBySMS?: boolean

  @Field({ nullable: true })
  notifyByWeb?: boolean

  @Field({ nullable: true })
  notifyByMobile?: boolean

  @Field(() => Chapter, { nullable: true })
  chapter?: Chapter

  @Field(() => [Company], { nullable: true })
  companies?: Company[]

  @Field(() => Territory, { nullable: true })
  territoryManaged?: Territory

  @Field(() => Region, { nullable: true })
  regionManaged?: Region

  @Field((type) => Int, { nullable: true })
  infusionsoftId?: number

  @Field({ nullable: true })
  password?: string

  @Field(() => Upload, { nullable: true })
  avatar?: Upload
}

这是我要犯的错误。

代码语言:javascript
复制
TypeError: Cannot read properties of undefined (reading 'User')
    at Module.User (/Users/justinhandley/IdeaProjects/biztobizglobal/dist/apps/api/main.js:12459:111)
    at Object../libs/api/territory/data-access/src/lib/models/territory.model.ts (/Users/justinhandley/IdeaProjects/biztobizglobal/dist/apps/api/webpack:/biz-to-biz-global/libs/api/territory/data-access/src/lib/models/territory.model.ts:20:13)
    at __webpack_require__ (/Users/justinhandley/IdeaProjects/biztobizglobal/dist/apps/api/webpack:/biz-to-biz-global/webpack/bootstrap:19:1)
    at Object../libs/api/territory/data-access/src/index.ts (/Users/justinhandley/IdeaProjects/biztobizglobal/dist/apps/api/main.js:9381:85)
    at __webpack_require__ (/Users/justinhandley/IdeaProjects/biztobizglobal/dist/apps/api/webpack:/biz-to-biz-global/webpack/bootstrap:19:1)
    at Object../libs/api/region/data-access/src/lib/models/region.model.ts (/Users/justinhandley/IdeaProjects/biztobizglobal/dist/apps/api/main.js:7619:93)
    at __webpack_require__ (/Users/justinhandley/IdeaProjects/biztobizglobal/dist/apps/api/webpack:/biz-to-biz-global/webpack/bootstrap:19:1)
    at Object../libs/api/region/data-access/src/index.ts (/Users/justinhandley/IdeaProjects/biztobizglobal/dist/apps/api/main.js:7232:82)
    at __webpack_require__ (/Users/justinhandley/IdeaProjects/biztobizglobal/dist/apps/api/webpack:/biz-to-biz-global/webpack/bootstrap:19:1)
    at Object../libs/api/chapter/data-access/src/lib/models/chapter.model.ts (/Users/justinhandley/IdeaProjects/biztobizglobal/dist/apps/api/main.js:2033:90)

我已经翻阅了我所能找到的所有文档,并且看到了好几个人报告了这一点以及“修复”,但是没有一个对我有用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-08 18:53:20

这是一个循环依赖问题。您需要将其中一个模型关系移动到解析器中以修复此问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72350630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档