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

Problema na listagem após cadastrar fotos

Olá a todos. Não sei se alguém teve o mesmo problema ao tentar cadastrar fotos no exercício proposto, mas vou tentar explicar o passo a passo.

No meu cadastro.component.ts, quando executei o seguninte trecho de codigo:

this.http.post('v1/fotos', JSON.stringify(this.foto), { headers: headers })
            .subscribe(() => {
                this.foto = new FotoComponent();
                console.log('Foto salva com sucesso');
            }, erro =>  console.log(erro));

Recebi a mensagem "Foto salva com sucesso" no log.

Entretanto, quando voltei para a listagem, recebi o seguinte erro no pipe que filtrava as fotos por título: "TypeError: Cannot read property 'toLocaleLowerCase' of undefined"

Verificando no endpoint "v1/fotos", percebi que o minhas fotos estavam sendo salvas no banco somente com a propriedade "_id" preenchida. Sendo assim, nada mais natural do que esse erro acontecer, uma vez q a foto não foi efetivamente salva.

Para corrigir o problema, retirei a serialização através do:

De:
this.http.post('v1/fotos', JSON.stringify(this.foto), { headers: headers })

Para:
this.http.post('v1/fotos', this.foto, { headers: headers })

E então tudo passou o funcionar corretamente.

Entretanto o banco de dados ficou "sujo" com os dados salvos com erro anteriormente, o que continua acarretando problemas na hora de exibição da listagem.

Existe uma maneira de apagar esses registros ou até mesmo recriar o banco criado pelo node??

Agradeço desde já pela atenção.

Anderson

3 respostas
solução!

Consegui fazer o "reset" do banco substituindo meu arquivo "data.db" no diretório "alurapic/server" pelo original que baixamos no início do treinamento e tudo funcionou.

Ocorreu o mesmo aqui.

Usando:

this.http.post('v1/fotos', this.foto, {headers: headers})

Ao invés de:

this.http.post('v1/fotos', JSON.stringify(this.foto), {headers: headers})

Funcionou sem problemas. Obrigado pela dica.

Obtive o mesmo erro, porém, percebi que eu havia esquecido de realizar o import do Headers. Funcionou perfeitamente e não foi necessário remover o JSON.stringify que, provavelmente, não deve ser removido.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software