Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Problema ao tentar realizar PUT, POST e DELETE

Olá Pessoal, estou precisando de uma ajuda.

Estou finalizando o curso ORM com NodeJS utilizando o Sequelize, porém no final do curso ao adicionar no Contoller pessoa o put, post e delete e tentar testar no Postman o mesmo informa que não foi localizado a rota "/pessoas/1/matricula". Fiz o teste com o GET e o mesmo retornou corretamente. Preciso de uma ajudar para tentar entender se é a configuração das rotas no router que estão incorretas ou se é no controller.

Segue o código da PessoaContoller:

    static async crieUmaMatricula(req, res) {
        const { estudanteId } = req.params;
        const novaMatricula = { ...req.body, estudanteId: Number(estudanteId) };
        
        try {
            const novaMatriculaCriada = await database.Matriculas.create(novaMatricula);
            return res.status(200).json(novaMatriculaCriada);
        } catch (erro) {
            return res.status(500).json(erro.message);
        }
    }
    
        static async atualizarUmaMatricula(req, res) {
        const { estudanteId, matriculaId } = req.params;
        const novaInfo = req.body;
        
        try {
            await database.Matriculas.update(novaInfo, {
                where: {
                    id: Number(matriculaId),
                    estudante_id: Number(estudanteId)
                }
            });
            
            const matriculaAtualizada = await database.Matriculas.findOne({
                where: {
                    id: Number(matriculaId)
                }
            });
    
            return res.status(200).json(matriculaAtualizada);
        } catch (erro) {
            return res.status(500).json(erro.message);
        }
    }
    
    static async apagaMatricula(req, res) {
        const { estudanteId, matriculaId } = req.params;
    
        try {
            await database.Matriculas.destroy({ where: { id: Number(matriculaId), estudante_id: Number(estudanteId) } });
            return res.status(200).json({ mensagem: `O ID ${matriculaId} foi excluído` });
        } catch (erro) {
            return res.status(500).json(erro.message);
        }
    }
    

Segue o arquivos das rotas:

const { Router } = require('express');
const PessoaController = require('../controllers/PessoaController.js');

const router = Router();

router.get('/pessoas', PessoaController.pegaTodasAsPessoas);
router.get('/pessoas/:id', PessoaController.pegaUmaPessoa);
router.post('/pessoas', PessoaController.crieUmaPessoa);
router.put('/pessoas/:id', PessoaController.atualizarUmaPessoa);
router.delete('/pessoas/:id', PessoaController.apagaPessoas);
router.get('/pessoas/:estudanteId/matricula', PessoaController.pegaTodasAsPessoas);
router.get('/pessoas/:estudanteId/matricula/:matriculaId', PessoaController.pegaUmaMatricula);
router.post('pessoas/:estudanteId/matricula', PessoaController.crieUmaMatricula);
router.put('pessoas/:estudanteId/matricula/:matriculaId', PessoaController.atualizarUmaMatricula);
router.delete('pessoas/:estudanteId/matricula/:matriculaId', PessoaController.apagaMatricula);

module.exports = router;
1 resposta
solução!

Olá pessoal!.

Analisando mais afundo acabei verificando que o meu endpoint esta sem a barra no começo das rotas, no qual já foi ajustado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software