strongloop 环回:如何保存多对多关系

strongloop loopback: how to save many-to-many relationship

我定义了以下关系:

{
  "name": "playlist",
  "base": "PersistedModel",
  "relations": {
    "songs": {
      "type": "hasAndBelongsToMany",
      "model": "song",
      "foreignKey": ""
    } 
  }  
}  

所以一个Song hasAndBelongsToMany Playlist。到目前为止一切顺利。

但是在将歌曲添加到播放列表时,我很困惑。

理想情况下,我希望能够在播放列表 create 端点的同一调用中添加新歌曲。我不知道该怎么做,恕我直言,文档很差。

看来我必须在 /playlists/:id/songs 上执行 POST 才能将歌曲关联到播放列表?但是,我不想创作新歌,只是将现有歌曲添加到播放列表中。这样行吗? POST 在提到的 URL 不会添加(并想要创建)新歌曲吗?

顺便说一句,使用 postgresql 作为后端。 正确的做法是什么?

当您创建 hasAndBelongsToMany 关系时,Loopback 会公开添加和删除 JS 方法,因为 documented. However I can't find any documentation on how it is exposed in the API, but this pull request 解释了如何执行,如下所示:

  • 将歌曲添加到播放列表:PUT /api/playlist/:id/song/rel/:fk
  • 从播放列表中删除歌曲:DELETE /api/playlist/:id/song/rel/:fk

请注意,这假设您有一个 PlaylistSong link table 和环回模型,具有 PlaylistId 和 SongId 字段以及所有正确的关系设置。