Ищем Active Model Serializer, например, вложенный ассоциативный вывод для Sequelize - PullRequest
0 голосов
/ 26 апреля 2019

Пожалуйста, прости меня, если мое исследование было неадекватным. Я читал документы и искал этот сайт безрезультатно более часа, и я действительно мог бы воспользоваться помощью эксперта.

С помощью Rails я могу использовать Active Model Serializer для отправки данных, связанных с запрашиваемым набором. Например, допустим, у меня есть Пользователи, а у Пользователей много Сообщений. Допустим, я хочу вывод, который выглядит следующим образом:

[
- {
id: 1,
username: "Matz",
posts: [
   - {
   id: 35,
   title: "Hello world",
   content_body: "This is the content of my post."
},
-{
   id: 98,
   title: "Foo Bar",
   content_body: "This is the content of my other post."
}]},
]

Использование Active Model Serializer это было бы тривиально. Я надеюсь получить похожий вывод, используя Sequelize.

Мои ассоциации работают нормально, и я могу, например, так:

return db.Users.findByPk(user_id)
    .then(user => user.getPosts())
    .then(posts => res.send(posts))

* отредактировано для добавления * Одна из проблем заключается в том, что я действительно хотел бы поместить, например, include в user.getPosts ().

Мне нужно получить сообщения, принадлежащие пользователю, а затем получить тег, которому принадлежат эти сообщения.


Большое спасибо за любую помощь. Я пытаюсь избежать слишком большого количества запросов на получение.

1 Ответ

0 голосов
/ 27 апреля 2019

Включить в .getPosts работает. Я не совсем понял документы.

Поскольку я импортировал модели, как и в моем app.js:

const db = require('./models');

Мне нужно было написать следующее:

return db.Users.findByPk(user_id)
    .then(user => user.getPosts({
      include: [{
        model: db.Tags
     }]
}))
    .then(posts => res.send(posts))
...