Fala, Victor! Pelo que você falou, parece que o terminal "não trava" porque o servidor tá rodando certinho, mas pode estar faltando algum teste pra confirmar isso. Vou te explicar direitinho.
Quando você roda go run main.go
, o terminal fica esperando conexões porque o servidor subiu na porta 8000, como você configurou. Isso é normal, o terminal não vai mostrar nada enquanto você não acessar o servidor.
Como testar se tá funcionando?
- Abre o navegador ou uma ferramenta tipo Postman.
- Digita http://localhost:8000 e dá Enter.
- Se tudo tiver certo, o servidor deve responder (ou dar um erro se o arquivo
index.html
não existir).
Os templates estão na pasta certa? Verifica se tem uma pasta chamada templates
no mesmo lugar onde tá o arquivo main.go
. Dentro dela, precisa ter o arquivo index.html
.
Porta ocupada? Às vezes, a porta 8000 pode estar sendo usada por outro programa. Tenta trocar pra outra, tipo a 8080:
http.ListenAndServe(":8080", nil)
Adiciona esse print no seu main
pra mostrar uma mensagem no terminal:
func main() {
http.HandleFunc("/", index)
println("Servidor rodando em http://localhost:8000")
http.ListenAndServe(":8000", nil)
}
Assim, dá pra saber que tá tudo funcionando enquanto o terminal espera conexões.