Follow/Unfollow 功能 NestJS

Follow/Unfollow Feature NestJS

我正在尝试在我的 NestJS 应用程序中创建一个 follow/unfollow 系统。目前我有一个用户 table 和 joiner table 跟随。下面table有如下结构

关注

followerId followingId
1 2
1 3
3 2

我有两条路线 /follow,它在下面 table 中创建一条记录,而 /unfollow 从下面的 table 中删除一条记录。

我正在尝试将两个关系属性添加到 user.entity.ts

然后当我想在 Twitter 上像用户个人资料一样加载这些关系。

我引用了这篇文章,但它在 rails 中并且 HasMany 似乎不存在于 typeorm 中。 https://levelup.gitconnected.com/how-to-create-a-follow-unfollow-button-in-your-rails-social-media-application-e4081c279bca

您可以在 TypeORM 中使用 one-to-many 关系。在用户实体中定义关注者和关注属性,如下所示。

@OneToMany(() => Follows, follows => follows.following)
followers: Follows[];

@OneToMany(() => Follows, follows => follows.follower)
followings: Follows[];

另请注意,如果另一侧没有 ManyToOne,您将无法使用 OneToMany,因此您必须在以下实体中定义以下属性。

@ManyToOne(() => User, user => user.followers)
following: User;

@ManyToOne(() => User, user => user.followings)
follower: User;

我相信有更有效的方法,但根据您所解释的系统的其他部分,这应该可行。

有关更多信息,您可以查看 TypeORM relations 文档。