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

Erro derruba o webservice

Olá Professor Gabriel.

Antes de mais nada, que lhe parabenizar pela qualidade do curso até aqui. Muito bom mesmo.

Seguinte:

Ao clicar para agendar um test drive, recebo o alert "Agendou!" ou "Deu Problema!". Em seguida lá no terminal o WebService dá erro e para.

Já conferi umas 4x tudo que fiz e não encontrei nada diferente do que está na sua videoaula. Poderia me ajudar?

Vou colar aqui embaixo algumas coisas para você conferir:


1 - Método agenda() em Cadastro.ts:

agenda(){ / console.log(this.nome); console.log(this.endereco); console.log(this.email); console.log(this.data); /

let agendamento = { nomeCliente: this.nome, enderecoCliente: this.endereco, emailCliente: this.email, modeloCarro: this.carro.nome, precoTotal: this.precoTotal };

this._agendamentosService.agenda(agendamento).subscribe( () => alert('Agendou!'), () => alert('Deu problema!') );

}


2 - Classe AgendamentosServiceProvider:

import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http';

@Injectable() export class AgendamentosServiceProvider {

private _url = 'http://localhost:8080/api';

constructor(private _http: HttpClient) { //console.log('Hello AgendamentosServiceProvider Provider'); }

agenda(agendamento) { return this._http.post(this._url + '/agendamento/agenda', agendamento); }

}


3 - Erro que o terminal exibe um ou dois segundos após aparecer o alert no navegador:

node server.js

Servidor rodando em http://localhost:8080 Agendamento recebido: {"nomeCliente":"ffff","enderecoCliente":"fffff","emailCliente":"fffff","modeloCarro":"Azera V6","precoTotal":85000} /Users/fabricio/Projetos/IonicProjects/concessionaria-webservice/api.js:67 const agendamentoId = agendamento.emailCliente + agendamento.data.substr(0, 10); ^

TypeError: Cannot read property 'substr' of undefined at enviaNotificacao (/Users/fabricio/Projetos/IonicProjects/concessionaria-webservice/api.js:67:75) at Timeout.setTimeout [as _onTimeout] (/Users/fabricio/Projetos/IonicProjects/concessionaria-webservice/api.js:46:30) at ontimeout (timers.js:458:11) at tryOnTimeout (timers.js:296:5) at Timer.listOnTimeout (timers.js:259:5) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! api@1.0.0 start: node server.js npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the api@1.0.0 start script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in: npm ERR! /Users/fabricio/.npm/_logs/2018-04-08T17_45_05_140Z-debug.log Macbook-de-Fabricio:concessionaria-webservice fabricio$


4 - Aproveitei p visualizar o referido arquivo de log apontado no erro acima:

Coloquei no gist: https://gist.github.com/fabriciocurvello/d9c8f40d41e43f96f0ee296068315529

4 respostas
solução!

Boa tarde, Fabrício! Como vai?

Como o próprio erro já diz, a API não está conseguindo encontrar a função substr() de undefinid.

TypeError: Cannot read property 'substr' of undefined

Isso está acontecendo pq vc não está enviando a data do agendamento para a API!

No entanto, não se preocupe pq esse já era um problema esperado e será corrigido logo mais a frente nessa aula aqui!

Obrigado pelo feedback! Que bom que está gostando do curso! Aliás, ainda tem a parte 2 com mtas surpresas e coisas bacanas pela frente! Espero que goste ainda mais!

Dica: Sempre que for postar um código utilize o botão "inserir código" e cole o código no lugar indicado para que ele receba a formatação correta e facilite na hora de ser analisado.

Grande abraço e bons estudos, meu aluno!

Huuummmm...

Eu vi que o erro tinha algo haver com a data, mas eu pirei aqui pq o seu no vídeo não dá o tal erro e também (ainda) não trata a data.

Vish... perdi umas 4 horas aqui analizando o código. Até baixar o seu projeto e comparar cada item feito nessa aula eu fiz.

Enfim, se vc diz que mais adiante vai dar certo, então vai dar certo!!!

;)

Obrigado pela dica do botão inserir código aqui do fórum.

Grande abraço!

Sim, Fabrício! Inclusive linkei a aula onde soluciono o problema no meu comentário anterior.

Sempre que tiver qualquer dúvida é só mandar aqui no fórum!

Grande abraço e bons estudos!

De fato, cheguei na referida aula e o problema foi resolvido.

Obrigado e forte abraço!