1
resposta

Meu postman esta dando erro 404 ao tentar realizar o comando DELETE

Boa tarde, Gostaria de uma ajuda para conseguir ajustar esse erro, não consigo deletar, aparece o erro 404, ja verifiquei o código e acredito que esteja correto, alguém poderia me ajudar? ** controladores** const { getTodosLivros, getLivroPorId, insereLivro, modificaLivro, deletaLivroPorId } = require("../servicos/livro")

function getLivros(req, res) { try { const livros = getTodosLivros() res.send(livros) } catch (error) { res.status(500) res.send(error.message) } }

function getLivro(req, res) { try { const id = req.params.id

    if(id && Number(id)) {
        const livro = getLivroPorId(id)
        res.send(livro)
    } else {
        res.status(422)
        res.send("Id inválido")
    }
} catch (error) {
    res.status(500)
    res.send(error.message)
} 

}

function postLivro(req, res) { try { const livroNovo = req.body if(req.body.nome) { insereLivro(livroNovo) res.status(201) res.send("Livro inserido com sucesso") } else { res.status(422) res.send("O campo nome é obrigatório") }

} catch(error) {
    res.status(500)
    res.send(error.message)
}

}

function patchLivro(req, res) { try { const id = req.params.id

    if(id && Number(id)) {
        const body = req.body
        modificaLivro(body, id)
        res.send("Item modificado com sucesso")
    } else {
        res.status(422)
        res.send("Id inválido")
    }
   
} catch(error) {
    res.status(500)
    res.send(error.message) 
}

}

function deleteLivro(req, res) { try { const id = req.params.id

    if(id && Number(id)) {
        deletaLivroPorId(id)
        res.send("livro deletado com sucesso")
    } else {
        res.status(422)
        res.send("ID inválido")
    }
} catch (error) {
    res.status(500)
    res.send(error.message)
} 

}

module.exports = { getLivros, getLivro, postLivro, patchLivro, deleteLivro }

ROTAS

const { Router } = require("express") const { getLivros, getLivro, postLivro, patchLivro, deleteLivro } = require("../controladores/livro")

const router = Router()

router.get('/', getLivros)

router.get('/:id', getLivro)

router.post('/', postLivro)

router.patch('/:id', patchLivro)

router.delete('/:id', deleteLivro)

module.exports = router

SERVICOS

const fs = require("fs")

function getTodosLivros() { return JSON.parse( fs.readFileSync("livros.json") ) }

function getLivroPorId(id) { const livros = JSON.parse(fs.readFileSync("livros.json"))

const livroFiltrado = livros.filter( livro => livro.id === id )[0]
return livroFiltrado

}

function insereLivro(livroNovo) { const livros = JSON.parse(fs.readFileSync("livros.json"))

const novaListaDeLivros = [ ...livros, livroNovo ]

fs.writeFileSync("livros.json", JSON.stringify(novaListaDeLivros))

}

function modificaLivro(modificacoes, id) { let livrosAtuais = JSON.parse(fs.readFileSync("livros.json")) const indiceModificado = livrosAtuais.findIndex(livro => livro.id === id)

const conteudoMudado = { ...livrosAtuais[indiceModificado], ...modificacoes }

livrosAtuais[indiceModificado] = conteudoMudado

fs.writeFileSync("livros.json", JSON.stringify(livrosAtuais))

}

function deletaLivroPorId(id) { const livros = JSON.parse(fs.readFileSync("livros.json"))

const livrosFiltrados = livros.filter( livro => livro.id !== id )
fs.writeFileSync("livros.json", JSON.stringify(livrosFiltrados))

}

module.exports = { getTodosLivros, getLivroPorId, insereLivro, modificaLivro, deletaLivroPorId }

APP.JS

const express = require("express") const rotaLivro = require("./rotas/livro") const rotaFavorito = require("./rotas/favorito")

const cors = require("cors")

const app = express() app.use(express.json()) app.use(cors({origin: "*"}))

app.use('/livros', rotaLivro) app.use('/favoritos', rotaFavorito)

const port = 8000

app.listen(port, () => { console.log(Escutando a porta ${port}) })

1 resposta

Consegue subir o código no GitHub? Se conseguir subir seu projeto lá me manda o link do repositório, talvez eu consiga te auxiliar.