1
resposta

Cannot POST /%20/

Todas as outros métodos do crud estão funcionando normalmente, apenas o método store que faz a inserção de um novo funcionário na base de dados, não esta funcionando como deveria, e retorna o seguinte erro

Cannot POST /%20/funcionarios
//ROTAS
const express = require('express');

const routes = express.Router();

const authMiddleware = require('./app/middleware/auth');

const controllers = require('./app/controllers');

/**
 * Session
 */

 routes.post('/sessions', controllers.SessionController.store);

 routes.use(authMiddleware);

 /**
  * User
  */
 routes.get('/users', controllers.UserController.index);
 routes.get('/users/:id', controllers.UserController.show);
 routes.post('/users', controllers.UserController.store);
 routes.put('/users/:id', controllers.UserController.update);
 routes.delete('/users/:id', controllers.UserController.destroy);



/*
*   Funcionario
 */
routes.get('/funcionarios', controllers.FuncionarioController.index);
routes.get('/funcionarios/:id', controllers.FuncionarioController.show);
routes.post('/funcionarios', controllers.FuncionarioController.store);
routes.put('/funcionarios/:id', controllers.FuncionarioController.update);


module.exports = routes;
// class  FuncionarioControlller
const Funcionario = require('../models/Funcionario');

class FuncionarioControlller {

    async index(req, resp){

        const funcionarios = await Funcionario.paginate({}, {
            page: req.query.page || 1,
            limit: 20, 
            sort: '-createdAt'
        });

        return resp.json(funcionarios)
    }

    async show(req, resp){
        const funcionario = await Funcionario.findById(req.params.id);

        return resp.json(funcionario)
    }

    async store(req, resp){
        const funcionario = await Funcionario.create(req.body);

        return resp.json(funcionario);
    }

    async update(req, resp){
        const funcionario = await Funcionario.findByIdAndUpdate(req.params.id, req.body, {
            new: true
        });

        return resp.json(funcionario);
    }

    async destroy(req, resp){
        await Funcionario.findByIdAndDelete(req.params.id);

        return resp.send();
    }
}

module.exports = new FuncionarioControlller()
1 resposta

Boa noite, Francisco! Como vai?

Veja que vc configurou a API para responder na rota POST /funcionarios e não na rota POST /%20/funcionarios! Por isso esse erro ocorre!

Sendo assim, o problema deve estar na forma como vc está fazendo a requisição para a API!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos!