Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Ao rodar o main.go e atualizar o localhost o mesmo não encontra o database

Ao rodar o programa tomo o erro abaixo http: panic serving [::1]:56907: pq: database "alura_loja" does not exist

porém meu postgres está com o database e a table criadas e configuradas conforme video da unidade 2

package main

import (
    "database/sql"
    "fmt"
    "html/template"
    "net/http"

    _ "github.com/lib/pq"
)

const (
    host     = "localhost"
    port     = 5432
    user     = "postgres"
    password = "****"
    dbname   = "alura_loja"
)

func conectaComBancoDeDados() *sql.DB {
    psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+
        "password=%s dbname=%s sslmode=disable",
        host, port, user, password, dbname)
    db, err := sql.Open("postgres", psqlInfo)
    if err != nil {
        panic(err.Error())
    }
    return db
}

// Produto -
type Produto struct {
    ID         int
    Nome       string
    Descricao  string
    Preco      float64
    Quantidade int
}

var temp = template.Must(template.ParseGlob("templates/*.html"))

func main() {
    http.HandleFunc("/", index)
    http.ListenAndServe(":8000", nil)
}

func index(w http.ResponseWriter, r *http.Request) {
    db := conectaComBancoDeDados()

    selectDeTodosOsProdutos, err := db.Query("select * from produtos")
    if err != nil {
        panic(err.Error())
    }

    p := Produto{}
    produtos := []Produto{}

    for selectDeTodosOsProdutos.Next() {
        var id, quantidade int
        var nome, descricao string
        var preco float64

        err = selectDeTodosOsProdutos.Scan(&id, &nome, &descricao, &preco, &quantidade)
        if err != nil {
            panic(err.Error())
        }

        p.Nome = nome
        p.Descricao = descricao
        p.Preco = preco
        p.Quantidade = quantidade

        produtos = append(produtos, p)
    }

    temp.ExecuteTemplate(w, "Index", produtos)
    defer db.Close()
}
1 resposta
solução!

Olá, consegui encontrar o problema, por desatenção minha coloquei o port incorreto, em vez de inserir 5433 coloquei 5432.