发现循环依赖。 nest.js 中的 sequelize-typescript

我收到此错误:

错误:发现循环依赖。用户依赖于自身。 依赖链:用户 -> 订单 => 用户

我正在尝试将我的项目从 express+sequelize 移动到 nest+sequelize-typescript 堆栈。正如我记得的那样,我通过将关联代码从模型文件移动到一个文件,解决了以前具有循环依赖关系的堆栈上的相同错误。 我搜索了互联网和文档,看起来我的代码看起来不错,但它不起作用。

官方续集文档建议我添加

constraints: false

我协会的代码,但 sequelize-typescript 没有工具可以做到这一点。

我做错了什么?请帮帮我!

入口点:

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { SequelizeModule } from '@nestjs/sequelize';
import { ConfigModule } from '@nestjs/config';
import { Dialect } from 'sequelize';
import { UsersModule } from '../base-modules/users/users.module';
import { OrdersModule } from '../base-modules/orders/orders.module';

@Module({
  imports: [
    ConfigModule.forRoot({
      envFilePath: process.env.NODE_ENV !== 'prod' ? '.env.development' : '.env',}),SequelizeModule.forRoot({
      dialect: process.env.DB_DIALECT as Dialect,host: process.env.DB_HOST,port: +process.env.DB_PORT,username: process.env.DB_USER,password: process.env.DB_PASS,database: process.env.DB_NAME,synchronize: true,autoLoadmodels: true,UsersModule,OrdersModule,],controllers: [AppController],providers: [AppService],})
export class AppModule {}

用户

import {
  AllowNull,AutoIncrement,Column,DataType,Default,HasMany,HasOne,Model,PrimaryKey,Table,Unique,} from 'sequelize-typescript';
import { IUserAttributes,IUserCreationAttributes,UserRole } from './user.types';
import { Order } from '../orders/order.model';

@Table({
  timestamps: true,tableName: 'users',})
export class User
  extends Model<IUserAttributes,IUserCreationAttributes>
  implements IUserAttributes
{
  @AutoIncrement
  @PrimaryKey
  @Column(DataType.INTEGER.UNSIGNED)
  id!: number;

  @AllowNull(false)
  @Unique
  @Column(DataType.STRING(64))
  name!: string;
  
  @HasMany(() => Order)
  orders?: Order[];
}

订单

import {
  AllowNull,BelongsTo,ForeignKey,} from 'sequelize-typescript';
import {
  IOrderAttributes,IOrderCreationAttributes,OrderCustom,OrderStatus,OrderType,TimeStamp,} from './order.types';
import { User } from '../users/user.model';

@Table({
  timestamps: true,tableName: 'orders',})
export class Order
  extends Model<IOrderAttributes,IOrderCreationAttributes>
  implements IOrderAttributes
{
  @AutoIncrement
  @PrimaryKey
  @Column(DataType.INTEGER.UNSIGNED)
  id!: number;

  @ForeignKey(() => User)
  @Column
  userId!: number;

  @BelongsTo(() => User,'userId')
  user?: User;
}
q7967139 回答:发现循环依赖。 nest.js 中的 sequelize-typescript

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/14970.html

大家都在问