I use express.js and sequelize, mysql
DB
A : { id: 1, name: ... }
B : { A_id: 1, name: name1 }, { A_id: 1, name: name2 }
models/A.js
A.association = models => {
A.hasMany(models.B, { foreignKey: 'A_id' });
};
const { B } = require('../models');
A.get = _id => {
return A.findAll({
where: { id: _id },
include: [{ model: B }],
});
};
models/B.js
B.association = models => {
B.belongsTo(models.A, { foreignKey: 'A_id' });
};
routes/test.js
A.get(1).then(record => { console.log(record); });
executed query
SELECT A.id, A.name, B.A_id, B.name
FROM A
LEFT OUTER JOIN B ON A.id = B.A_id
WHERE A.id=1;
result
should have { A_id: 1, name: name2 }
[A: {
id: 1,
name: ...,
Bs: [{ A_id: 1, name: name1 }]
}];
What is the problem? query is fine. It returns data 'name1, name2'
Why Sequelize method doesn't get all of B column?