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

[Dúvida] Não cadastra pensamentos

Estou acompanhando o passo a passo da Nay, já até apaguei o meu código escrito e copiei o da transcrição do vídeo, mas nada dos pensamentos que já estavam cadastrados aparecerem. Os novos pensamentos também não cadastram de jeito nenhum, não sei mais o que fazer para tentar solucionar.

Código pensamento.service.ts

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { Pensamento } from './pensamento';

@Injectable({
  providedIn: 'root'
})
export class PensamentoService {

  private readonly API = "http://localhost:3000/pensamentos"
  constructor(private http: HttpClient) { }

  listar(): Observable<Pensamento[]>{
    return this.http.get<Pensamento[]>(this.API)
  }

  criar(pensamento: Pensamento): Observable<Pensamento> {
    return this.http.post<Pensamento>(this.API, pensamento)
  }
}

Código listar-pensamento.component.ts

import { Component, OnInit } from '@angular/core';
import { Pensamento } from '../pensamento';
import { PensamentoService } from '../pensamento.service';

@Component({
  selector: 'app-listar-pensamento',
  templateUrl: './listar-pensamento.component.html',
  styleUrls: ['./listar-pensamento.component.css']
})
export class ListarPensamentoComponent implements OnInit{

  listaPensamentos: Pensamento[] = [];

  constructor(private service: PensamentoService) { }

  ngOnInit(): void {
    this.service.listar().subscribe((listaPensamentos) => {
        this.listaPensamentos = listaPensamentos
    });
}
}

Código pensamento.ts

export interface Pensamento {
  id?: number
  conteudo: string
  autoria: string
  modelo: string
}

Código criar-pensamento.component.ts

import { Component } from '@angular/core';
import { Pensamento } from '../pensamento';
import { PensamentoService } from '../pensamento.service';
import { Router } from '@angular/router';

@Component({
  selector: 'app-criar-pensamento',
  templateUrl: './criar-pensamento.component.html',
  styleUrls: ['./criar-pensamento.component.css'],
})
export class CriarPensamentoComponent {
  pensamento: Pensamento = {
    conteudo: '',
    autoria: '',
    modelo: ''
  }

  constructor(private service: PensamentoService, private router: Router) { }

  ngOnInit(): void {

  };

  criarPensamento(){
    this.service.criar(this.pensamento).subscribe()
  }
}
2 respostas
solução!

Oi Anna, tudo bem?

É frustrante quando a gente copia o código e nada acontece, né? Mas nós vamos tentar resolver isso juntas! Você já verificou se o servidor da API está rodando? Ele precisa estar ativo para que o Angular consiga se comunicar com ele e buscar os dados:

  • Verifique se o servidor está rodando: Abra o terminal e navegue até a pasta do backend. Execute o comando npm start para iniciar o servidor.

  • Verifique a URL da API: Certifique-se de que a URL http://localhost:3000/pensamentos está correta e que o servidor está escutando na porta 3000.

  • Verifique o console do navegador: Abra as ferramentas do desenvolvedor (F12) e verifique o console. Pode haver algum erro que esteja impedindo a comunicação com a API. Se você verificar tudo isso e ainda não funcionar, mande os erros que você está vendo no console do navegador. Assim, podemos investigar melhor o problema.

Espero muito que esses passos consigam te ajudar. Caso contrário, conte com o apoio do fórum, ficamos à disposição!

Um abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Oi Rafa, tudo sim e você? Como matei o terminal, esqueci de rodar o servidor novamente. Pedi a ajuda de uma amiga e ela me lembrou do servidor.

Muito obrigada! <3