Pasé una buena parte del día confundido sobre el comportamiento de uno de mis métodos que debería crear una instancia de Model, Company , que tiene un Contact .
Siento que debería ser simple, pero simplemente no genera el campo de contact como esperaba, aunque lo está guardando en la base de datos correctamente:
await sequelize.transaction(async (t) => { const company = await Company.create({ name: req.body.companyName }, { transaction: t }); const contact = await Contact.create({position: req.body.position}, { transaction: t }); await company.addContact(contact, {transaction: t}); // This method does exist await company.save(); // Thought this might help in case `addContact` didn't update the db console.log(company.dataValues); // {id:5, name: 'test'} console.log(contact.dataValues); // {id: 7, position: 'Legend'} const test = await Company.findOne({where: { name: req.body.companyName }, transaction: t}); console.log(test.dataValues); // {id: 5, name: 'test'}, no contact property console.log(company.contacts); // is this not posssible instead? //...Esperaba esto como resultado:
{ id: 5, nombre: 'prueba', contactos: [{ id: 7, posición: 'leyenda' }] }
Realmente no puedo entender por qué no funciona. ¡Cualquier ayuda sería realmente apreciada en este punto!
** Asociaciones:
Company.hasMany(Contact); Contact.belongsTo(Company);