Boa tarde pessoal, estou acompanhando o curso e ao fazer uma requisição me deparei com esse erro e até agora não consegui encontrar, segue códigos:
Services.js
const db = require('../database/models');
class Services {
constructor(model) {
this.model = model;
}
async getAllPersons() {
return await db[this.model].findAll();
}
async getAllPersonsActive(escopo) {
return await db[this.model].scope(escopo).findAll();
}
async pegaUmRegistroPorId(id) {
return db[this.model].findByPk(id);
}
async pegaUmRegistro(where) {
const x = await db[this.model].findOne({ where: { ...where } });
return x;
}
async criaRegistro(dadosDoRegistro) {
return db[this.model].create(dadosDoRegistro);
}
async atualizaRegistro(data,id) {
const registroAttList = db[this.model].update(data,
{
where: {id: id}
});
return registroAttList[0] !== 0;
}
async excluiRegistro(id) {
return db[this.model].destroy({ where: { id: id } });
}
}
module.exports = Services;
Curso.js
'use strict';
const {
Model
} = require('sequelize');
module.exports = (sequelize, DataTypes) => {
class Curso extends Model {
/**
* Helper method for defining associations.
* This method is not a part of Sequelize lifecycle.
* The `models/index` file will call this method automatically.
*/
static associate(models) {
Curso.belongsTo(models.Categoria, {foreignKey: 'categoria_id',});
Curso.belongsTo(models.Pessoa, {foreignKey: 'docente_id',});
Curso.hasMany(models.Matricula, {foreignKey: 'curso_id',});
}
}
Curso.init({
titulo: DataTypes.STRING,
descricao: DataTypes.STRING,
data_inicio: DataTypes.DATEONLY
}, {
sequelize,
modelName: 'Curso',
tableName: 'cursos'
});
return Curso;
};
matricula.js
'use strict';
const {
Model
} = require('sequelize');
module.exports = (sequelize, DataTypes) => {
class Matricula extends Model {
static associate(models) {
Matricula.belongsTo(models.Pessoa, {foreignKey: 'estudante_id',});
Matricula.belongsTo(models.Curso, {foreignKey: 'curso_id', as: 'curso'});
}
}
Matricula.init({
status: DataTypes.STRING
}, {
sequelize,
modelName: 'Matricula',
tableName: 'matriculas'
});
return Matricula;
};
PessoasRoutes.js
const {Router} = require('express');
const pessoasController = require('../controllers/PessoaController.js');
const MatriculaController = require('../controllers/MatriculaController.js');
const pessoaController = new pessoasController();
const matriculaController = new MatriculaController();
const router = Router();
router.get('/pessoas', (req, res) =>pessoaController.getAll(req, res));
router.get('/pessoas/all', (req, res) => pessoaController.pegaTodosOsRegistros(req,res));
router.get('/pessoas/:id', (req, res) =>pessoaController.pegaUmPorId(req, res));
router.put('/pessoas/:id', (req, res) =>pessoaController.atualiza(req, res));
router.post('/pessoas/', (req, res) =>pessoaController.criaNovo(req, res));
router.delete('/pessoas/:id', (req, res) => pessoaController.exclui(req, res));
router.get('/pessoas/:estudante_id/matriculas', (req, res) =>pessoaController.pegaMatriculas(req, res));
router.post('/pessoas/:estudante_id/matriculas', (req, res) => matriculaController.criaNovo(req, res));
module.exports = router;
Se precisar de mais informações, só pedir, agradeço desde já