2
respostas

Esta definido novo cliente como undefined

Ao cadastrar um novo cliente aparece na lista undefined tanto no nome como no email. Imagino que o erro esteja no db.json pois quando consulto ele só aparece um novo "id", como faço para arrumar?

2 respostas

eae carol, na paz?

ta dando erro pq o "id" não foi definido ainda lá na função "criaNovaLinha", ele já está no db.json, entretanto o professor não explicou essa parte. Portanto, dentro da constante, basta vc colocar após o email o id, no fim ficará assim:

const criaNovaLinha = (nome, email, ***id***)

Mas não é só isso, vc também deve ir no seu data.foreach que é aonde está pegando o array e vendo os objetos dentro dele, e adicionar elemento.id

data.forEach((element) => {
        tabelaCliente.appendChild(
            criaNovaLinha(element.nome, element.email, ***element.id***)
        );
    });

O meu código está diferente pq eu usei palavras diferentes, então aconselho não copia-lo, porém é a mesma lógica, espero ter ajudado :)

Fala Pessoal! Tudo bem? Eu tive o mesmo problema, quebrei bastante a cabeça. No final das contas, o que estava errado no meu código era só um erro de ortografia no headers. Dá uma conferida lá carol, o seu fetch deve estar assim:

const clientCreate = (name, email) => {

  return fetch (`http://localhost:3000/profile`, {
    method: 'POST',
    headers: {
      'Content-Type' : 'application/json' // APPLICATION É COM DOIS P's
    },
    body: JSON.stringify({
      nome: name,
      email: email
    })
  })
  .then( response => {
    return response.body;
  })
}

Meu erro estava aquiheaders: { 'Content-Type' : 'application/json' // APPLICATION É COM DOIS P's },


Neste caso, o problema não tem ligação com o id pois ele é gerado pelo json server no momento do POST. Espero ter ajudado. Bons estudos!