Aula 36
Corrigindo o Problema do db Sendo Nil e Testando Erro de Query (Aula de Golang e MySQL)
Nesta aula consertamos o problema do valor da variável db
ser nil
.
Testamos a requisição no Postman na espera de uma resposta falha com Internal Server Error.
Summary
Resumo do Transcript
Olá pessoal! Estamos de volta para resolver um problema relacionado à variável DB
, que está indefinida. Vamos revisar a definição dessa variável.
Problema Identificado
O problema se originou porque a variável DB
estava sendo criada como local, usando :=
, o que impede que ela modifique a variável DB
que já foi declarada anteriormente. Para corrigir isso, devemos usar o sinal de igual (=
) para definir a variável, garantindo que a referência correta da variável global seja utilizada.
Correções Realizadas
- Declarar
DB
corretamente para evitar a criação de uma nova variável local. - Declarei uma nova variável
error
como local, que desaparecerá após a função, enquanto a variávelDB
permanece a mesma.
Testes Realizados
- Após as correções, realicei um teste com o Postman e consegui receber uma resposta sem problemas, o que indica que a conexão está funcionando.
Teste de Erro
- Para verificar se o sistema lida bem com erros, desativei o servidor MySQL enquanto o servidor Go estava ativo. Ao tentar fazer uma requisição, recebemos um erro 500, que foi logado corretamente.
- Após reiniciar o servidor MySQL, as requisições voltaram a funcionar, retornando o status 200 OK.
Vamos dar uma pausa por aqui, e na próxima aula, continuaremos com a recuperação de registros do banco de dados. Até mais!
Video Transcript
Olá pessoal, estamos de volta, vamos continuar aqui, vamos resolver esse problema do DB está
indefinido né Neil? Lá nos insta, livros, cadê aqui? Ah não, não é isso não. Então,
DB aqui está a declarar aqui lá fora, então deve ter acesso aqui, mas ele diz que é Neil.
Então, quem é que se tocou? O que é?
Na besteira que eu fiz, então vai lá para a definição do DB, olha só, ele está criando DB
aqui, os dois pontos igual, mas essa variável aqui é local. Então, na verdade, não está
modificando lá o DB lá de cima do topo, por causa dos dois pontos aqui igual. Então,
para corrigir isso, fazer o seguinte, define primeiro de tudo, a gente vai ter que usar o
igual, porque quando você usa igual, já espero que tenha declarada a variável, o DB já está
declarado lá em cima, mas o erro à abertura não está, então preciso declarar aqui em
local, vai ir à abertura do tipo error. Dessa maneira eu posso usar o igual, o igual
não vai criar a nova variável aqui local, no caso do DB, que o DB já estava declarado,
só falta definir, mas o erro à abertura vai ser local e vai desaparecer depois de sair
da função. Então, vamos ver, tem mais problema aqui, os pontos terminaram lá de novo, aqui,
certo, postman, send, recebeu a resposta, esse é um bom sinal, que não teve problema,
note que deu log aqui e realmente tem alguma coisa, tá certo? Agora vamos ver, continuar
aqui, vem, uma coisa que eu queria confirmar, é se realmente ele vai lidar com aquele erro,
para poder fazer isso, estou pensando aqui, vou matar o servidor na hora que depois de
conectar e tal, vou matar o servidor e fazer essa exigição, então vou aqui, o servidor
está rodando, desculpa, matar o servidor de MySQL, não o servidor de Go, tá? Então, o servidor
de Go está rodando, vou bater lá no lista de livros, mas antes de bater no lista de livros,
vou desligar o servidor de MySQL aqui, então fiz o comando aqui e desliguei o servidor,
pronto, servidor está desligado, vou lá postman, vou fazer o pedido, tá? 500 turns
error, então dá o log aqui, se lembra daquilo log que a gente fez, ele deu log para a gente
além e tem que ir a mensagem, listar a livros de dois pontos, passo e o error lá, vai dizer
conectar, conexão foi rejeitada, tá? Porque o servidor está desligado, agora se eu
reiniciar o servidor, note que o servidor de Go fica rodando ainda, então eu reiniciei
meu servidor de MySQL e vou bater no postman de novo, agora funcionar sem problemas 200 OK, tá?
Tá isso, testamos o erro, tá? Agora vamos dar pausa e te vejo na próxima aula,
onde a gente vai continuar realmente pegar os registros do banco de dados, até mais!
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: