A modellben:
Employee.belongsTo(Position, {foreignKey: 'positionId', targetKey: 'id'})
Az Employee modell teljes kódja:
const { DataTypes } = require('sequelize') const sequelize = require('../database/database') const Position = require('../models/position') const Employee = sequelize.define('Employee', { id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true }, name: { type: DataTypes.STRING, allowNull: false, validate: { notNull: true } }, city: { type: DataTypes.STRING, allowNull: true }, salary: { type: DataTypes.DOUBLE , defaultValue: 0 }, positionId: { type: DataTypes.INTEGER } }) //Idegenkulcs: Employee.belongsTo(Position, {foreignKey: 'positionId', targetKey: 'id'}) //A model és az adatbázis szinkronizálása, nem erőltetve. sequelize.sync({ force: false }) module.exports = Employee
A kontrollerben egy lehetséges lekrédezés:
const emps = await Employee.findAll({ include: [{ model: Position }] })
{ "data": [ { "Position": { "createdAt": null, "id": 1, "name": "fejlesztő", "updatedAt": null }, "city": "Hatvan", "createdAt": "2024-03-10T18:15:02.000Z", "id": 7, "name": "Csoda Béla", "positionId": 1, "salary": 394, "updatedAt": "2024-03-10T18:15:02.735Z" }, { "Position": { "createdAt": null, "id": 1, "name": "fejlesztő", "updatedAt": null }, "city": "Szolnok", "createdAt": "2024-03-10T18:15:28.000Z", "id": 8, "name": "Csík Ferenc", "positionId": 1, "salary": 392, "updatedAt": "2024-03-10T18:15:28.361Z" }, { "Position": { "createdAt": null, "id": 2, "name": "tesztelő", "updatedAt": null }, "city": "Szeged", "createdAt": "2024-03-10T18:15:54.000Z", "id": 9, "name": "Erős István", "positionId": 2, "salary": 397, "updatedAt": "2024-03-10T18:15:54.954Z" } ], "success": true }