Boa tarde, não estou conseguindo realizar o comando put, segue as duas telas, a com get e put após.
Boa tarde, não estou conseguindo realizar o comando put, segue as duas telas, a com get e put após.
Olá!
manda como tá o seu código para o put, por favor :-)
import express from "express";
const app = express();
app.use(express.json())
const livros = [ {id:1, "titulo": "Senhor dos anéis"}, {id:2, "titulo": "O hobbit"} ]
app.get('/', (req, res) => { res.status(200).send('Curso de Node'); })
app.get('/livros', (req, res) => { res.status(200).json(livros) })
app.post('/livros', (req, res) => { livros.push(req.body) res.status(201).send('Livro foi cadastrado com sucesso') })
app.put('./livros:id', (req, res) => { let index = buscaLivro(req.params.id); livros[index].titulo = req.body.titulo; res.json(livros); })
function buscaLivro(id) { return livros.findIndex(livro => livro.id == id) }
export default app
Olá!
será que não é esse . que tem antes da barra no put não? Tá faltando também a barra antes do :id
app.put('./livros:id', (req, res) => { let index = buscaLivro(req.params.id); livros[index].titulo = req.body.titulo; res.json(livros); })
Tenta remover o ponto e incluir a barra, deixando assim:
app.put('/livros/:id', (req, res) => {
let index = buscaLivro(req.params.id);
livros[index].titulo = req.body.titulo;
res.json(livros);
})
fechei tudo, mudei e não foi. Deu esse erro. Me sugeriram que eu não estou salvando, mas como salvaria do post pra dar o put e substituir?
TypeError: Cannot set properties of undefined (setting 'titulo') at file:///C:/Users/ilso_/OneDrive/%C3%81rea%20de%20Trabalho/alura-node/src/app.js:29:26 at Layer.handle [as handle_request] (C:\Users\ilso_\OneDrive\Área de Trabalho\alura-node\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\ilso_\OneDrive\Área de Trabalho\alura-node\node_modules\express\lib\router\route.js:137:13) at Route.dispatch (C:\Users\ilso_\OneDrive\Área de Trabalho\alura-node\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (C:\Users\ilso_\OneDrive\Área de Trabalho\alura-node\node_modules\express\lib\router\layer.js:95:5) at C:\Users\ilso_\OneDrive\Área de Trabalho\alura-node\node_modules\express\lib\router\index.js:281:22 at param (C:\Users\ilso_\OneDrive\Área de Trabalho\alura-node\node_modules\express\lib\router\index.js:360:14) at param (C:\Users\ilso_\OneDrive\Área de Trabalho\alura-node\node_modules\express\lib\router\index.js:371:14) at Function.process_params (C:\Users\ilso_\OneDrive\Área de Trabalho\alura-node\node_modules\express\lib\router\index.js:416:3) at next (C:\Users\ilso_\OneDrive\Área de Trabalho\alura-node\node_modules\express\lib\router\index.js:275:10)
consegui mesmo, era o lance de salvar no postman a alteração de post e depois fazer o put. Não observei na aula ou posso ter passado batido no vídeo, se puder fazer um alerta para as pessoas, obrigado pela ajuda Professora!