Ao fazer uma requisição do tipo GET para a rota de /turmas acaba ocorrendo um erro. No comando SQL executado no terminal a aplicação está tentando buscar um dos campos com o nome errado, em vez de pegar o campo nivel_id
ele procura o campo NiveiId
. Também tem um warning quando roda a aplicação:
Warning: Accessing non-existent property 'pegaTodasAsPessoas' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
models/turmas.js
'use strict';
module.exports = (sequelize, DataTypes) => {
const Turmas = sequelize.define('Turmas', {
data_inicio: DataTypes.DATEONLY
}, {});
Turmas.associate = function(models) {
Turmas.hasMany(models.Matriculas, {
forignKey: "turma_id"
});
Turmas.belongsTo(models.Pessoas, {
foreignKey: "docent_id"
});
Turmas.belongsTo(models.Niveis, {
forignKey: "nivel_id"
});
};
return Turmas;
};
migrations/create-turmas.js
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('Turmas', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
data_inicio: {
type: Sequelize.DATEONLY
},
docente_id: {
allowNull: false,
type: Sequelize.INTEGER,
references: {model: "Pessoas", key: "id"}
},
nivel_id: {
allowNull: false,
type: Sequelize.INTEGER,
references: {model: "Niveis", key: "id"}
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
}
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable('Turmas');
}
};