Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 续写Typescript:Type';FavoriteEntity[]和#x27;不可分配给类型';FavoriteEntity | null';_Node.js_Postgresql_Typescript_Sequelize.js_Nestjs - Fatal编程技术网

Node.js 续写Typescript:Type';FavoriteEntity[]和#x27;不可分配给类型';FavoriteEntity | null';

Node.js 续写Typescript:Type';FavoriteEntity[]和#x27;不可分配给类型';FavoriteEntity | null';,node.js,postgresql,typescript,sequelize.js,nestjs,Node.js,Postgresql,Typescript,Sequelize.js,Nestjs,我正在使用Sequelize Typescript作为ORM编写一个NestJS应用程序 这里我试图得到一个用户喜欢的作业(m:m),所以我有一个UserEntity,一个JobEntity(与这个问题无关)和一个FavoriteEntity favorite.entity.ts 使用FavoriteEntity[]而不是FavoriteEntity,我得到 类型“FavoriteEntity[]中缺少属性“dataValues” 我真的不知道哪种方法是正确的,但是我仍然有一个问题…findAl

我正在使用Sequelize Typescript作为ORM编写一个NestJS应用程序

这里我试图得到一个用户喜欢的作业(m:m),所以我有一个UserEntity,一个JobEntity(与这个问题无关)和一个FavoriteEntity

favorite.entity.ts

使用
FavoriteEntity[]
而不是
FavoriteEntity
,我得到

类型“FavoriteEntity[]中缺少属性“dataValues”


我真的不知道哪种方法是正确的,但是我仍然有一个问题…

findAll
将返回一个实体数组。您只需要一个或空。为此,请使用
findOne
。此外,您不需要在此处执行返回等待操作。除非是在try-catch块中,否则这是多余的。

是的,我想我也知道了。这意味着我必须更新我的打字,以反映它正在返回一个数组。当我修复界面时,它不再抱怨了。。。谢谢啊哈,我不知道等待归来的事。再次感谢!
import { Table, Column, Model, PrimaryKey, ForeignKey, BelongsTo, NotNull } from "sequelize-typescript";
import { IDefineOptions } from "sequelize-typescript/lib/interfaces/IDefineOptions";
import { UserEntity } from "../users/user.entity";
import { JobEntity } from "../jobs/job.entity";

const tableOptions: IDefineOptions = {
  timestamp: true,
  tableName: "favorites",
  schema: process.env.DB_SCHEMA,
} as IDefineOptions;

@Table(tableOptions)
export class FavoriteEntity extends Model<FavoriteEntity> {
  @BelongsTo(() => UserEntity)
  user: UserEntity;

  @ForeignKey(() => UserEntity)
  @PrimaryKey
  @NotNull
  @Column
  userId: number;

  @BelongsTo(() => JobEntity)
  job: JobEntity;

  @ForeignKey(() => JobEntity)
  @PrimaryKey
  @NotNull
  @Column
  jobId: number;
}
import { Inject, Injectable } from "@nestjs/common";
import { Model } from "sequelize-typescript";
import { IFavorite, IFavoriteService } from "./interfaces";
import { FavoriteEntity } from "./favorite.entity";

@Injectable()
export class FavoriteService implements IFavoriteService {
  constructor(
    @Inject("FavoriteRepository") private readonly favoriteRepository: typeof Model,
    @Inject("SequelizeInstance") private readonly sequelizeInstance,
  ) {}

  public async findByUserId(userId: number): Promise<FavoriteEntity | null> {
    return await FavoriteEntity.scope().findAll<FavoriteEntity>({
      where: { userId },
    });
  }
}
return await FavoriteEntity.scope().findAll<FavoriteEntity[]>({
  where: { userId },
});