Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Erro ao fazer as query da rota /turmas

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');
  }
};
5 respostas

Oi Matheus, tudo bem? Olhando apenas esse trecho de código eu não sei se vou conseguir ajudar muito, eu queria seu projeto completo pra poder fazer um debug e entender melhor o que pode estar acontecendo. Você tem ele no GitHub para que eu possa clonar e testar aqui? Fico no aguardo.

Repositorio: https://github.com/matheusgondra/Node-API-ORM

solução!

Boa noite Matheus, creio que foi só um erro de digitação:

    Turmas.belongsTo(models.Niveis, {
      forignKey: "nivel_id"
    });

o correto seria:

    Turmas.belongsTo(models.Niveis, {
      foreingkey: "nivel_id"
    });

Matheus, desculpa a demora, estou com problemas pra executar MySQL na minha máquina, mas o Oscar pegou um ponto importante, tem esse erro de digitação pelo menos duas vezes no seu código. Dá uma corrigida nisso e vê resolve.

Wanderson e Oscar obrigado, como o Oscar disse estava escrito errado e quando fui verificar em outros lugares tb estava com erro de digitação. Dps vou rever o curso achei o uso do ORM meio complicado