Comment utiliser Sequelize belongsToMany associations?

J'ai des projets et des utilisateurs.

Un utilisateur peut avoir plusieurs projets.

Un projet peut avoir plusieurs utilisateurs.

J'ai essayé de modèle avec un belongsToMany association.

Sur mon serveur, j'ai défini les associations telles que:

user.belongsToMany(project, {
  through: 'writer_of_project'
  foreign-key: 'user'
  as: \projects
});

project.bbelongsToMany(user, {
  through: 'writer_of_project'
  foreign-key: 'project'
  as: 'writers'
});

Sur mon client, il ressemble à ceci:

user: {
  id:       1,
  ...
  projects: [1,2,3]
}

project: {
  id:     1,
  ...
  writers: [1,4,5]
}

Sur le serveur de l'association nécessite une troisième table pour stocker l'association et Sequelize ne semble pas permettez-moi d'inclure les modèles correspondants.

Si je lance un project.find(1) avec include:[user] - je obtenir

utilisateur n'est pas associée avec le projet!

Si j'ai essayer de mettre le projet à partir de l'exemple ci-dessus, dans la méthode de mise à jour. Les utilisateurs attribut est tout simplement ignoré (je m'attendais à un projet.setUsers(projectUpdate.les utilisateurs de se produire dans l'arrière-plan).

Quelle est la bonne façon de traiter avec le chargement et la mise à jour de ces associations?

Je trouve que si vous définissez vos modèles avec le sequelize-cli ensuite, association à devenir plus facile à lire car ils sont inclus dans le modèle lui-même. Il vous permet également d'utiliser des migrations qui il est un vrai bonus

OriginalL'auteur K.. | 2015-04-16