Tengo una pregunta sobre cómo puedo recuperar una relación dentro de otra relación usando SEQUELIZE en NODEJS.
Ejemplo, en Laravel PHP puedo hacer algo como esto:
Model::with(['character.genetic'])->get()De esa manera traerá la relación de "Personaje" y la relación que "Personaje tiene con Genética", sin embargo, ¿cómo puedo hacer eso en NODE?
A continuación se muestra un ejemplo de mi código en NodeJS:
let data = await PlayerCharacter.findAll({ include: ['character.genetic'], ///dont works where: { playerId: req.playerId, }, order: [ ['levelId', 'desc'] ] });Mi clase Principal
import Sequelize from 'sequelize'; import database from '../database'; const PlayerCharacter = database.define('player_characters', { ..... characterId: { type: Sequelize.BIGINT, allowNull: false, }, ..... }); /** * Relationships */ PlayerCharacter.belongsTo(Character, { foreignKey: 'characterId', as: 'character', }); export default PlayerCharacter;Mi personaje de clase
import Sequelize from 'sequelize'; import database from '../database'; const Character = database.define('characters', { ... geneticId: { type: Sequelize.INTEGER, allowNull: false, }, .... }, { timestamps: false, }); /** * Relationships */ Character.hasOne(CharacterGenetic, { foreignKey: 'geneticId', as: 'genetic', }); export default Character;Debe usar una opción de include anidada como esta:
let data = await PlayerCharacter.findAll({ include: [{ model: Character, as: 'character', include: [{ model: CharacterGenetic, as: 'genetic' } ] } ], where: { playerId: req.playerId, }, order: [ ['levelId', 'desc'] ] });