Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Não conseguindo realizar o comando put

Boa tarde, não estou conseguindo realizar o comando put, segue as duas telas, a com get e put após.

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

5 respostas

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)
solução!

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!