2015-09-22 2 views
3

У меня есть следующие отношения определены:strongloop шлейфу: как сэкономить много-ко-многим

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

Так Song hasAndBelongsToMany Playlist. Все идет нормально.

Но когда дело доходит до добавления песен в список воспроизведения, я смущен.

В идеале я хотел бы, например, добавить новые песни в один и тот же вызов списка воспроизведения create endpoint. Я понятия не имею, как это сделать, и документы довольно бедны imho.

Кажется, я должен сделать POST на /playlists/:id/songs, чтобы связать песни с плейлистами? Но тогда я не хочу создавать новые песни, просто добавляю существующие песни в список воспроизведения. Будет ли это работать так? Не будет ли POST по указанному URL добавить (и хочет создать) новые песни?

BTW, используя postgresql как задний. Каков правильный способ сделать это?

ответ

3

При создании отношения hasAndBelongsToMany Loopback предоставляет возможность добавлять и удалять методы JS как documented. Однако я не могу найти какую-либо документацию о том, как она подвергается в API, но this pull request объясняет, как сделать это следующим образом:

  • Добавить песню в плейлист: PUT /api/playlist/:id/song/rel/:fk
  • Удаление песни из списка воспроизведения : DELETE /api/playlist/:id/song/rel/:fk

Обратите внимание, что это предполагает, что у вас есть таблица PlaylistSong ссылки и Loopback модель, с PlaylistId и SongId полей и все правильные взаимоотношения созданных.

+0

Это то, что я, наконец, сделал, но серверная сторона: 'instance.songs.remove (song);' 'instance.songs.add (song);' – faboolous

Смежные вопросы