1
resposta

404 nas duas paginas

quando eu rodo ta dando 404 page not found nas duas paginas. o codigo ta sem erro de compilação nenhum. seguem todas as classes:

package main

import (
    "net/http"

    _ "github.com/lib/pq"
)

func main() {

    http.ListenAndServe(":5000", nil)
}
package models

import "web-app/db"

type Produto struct {
    Id         int
    Nome       string
    Descricao  string
    Preco      float64
    Quantidade int
}

func BuscaTodosOsProdutos() []Produto {
    db := 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)
    }
    defer db.Close()
    return produtos

}
package db

import (
    "database/sql"

    _ "github.com/lib/pq"
)

func ConectaComBancoDeDados() *sql.DB {
    conexao := "user=postgres dbname=alura_loja password=admin host=localhost sslmode=disable"
    db, err := sql.Open("postgres", conexao)
    if err != nil {
        panic(err.Error())
    }
    return db
}
package controllers

import (
    "html/template"
    "net/http"
    "web-app/models"
)

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

func Index(w http.ResponseWriter, r *http.Request) {
    todosOsProdutos := models.BuscaTodosOsProdutos()
    temp.ExecuteTemplate(w, "Index", todosOsProdutos)
}

func New(w http.ResponseWriter, r *http.Request) {
    temp.ExecuteTemplate(w, "New", nil)
}
package routes

import (
    "net/http"

    "web-app/controllers"
)

func CarregaRotas() {
    http.HandleFunc("/", controllers.Index)
    http.HandleFunc("/new", controllers.New)
}
1 resposta

Olá, Thiago!

Isso pode acontecer quando o servidor não consegue encontrar as rotas correspondentes para as URLs solicitadas.

Uma possível causa para esse problema é que você não definiu as rotas corretamente no arquivo routes.go. Verifique se você adicionou as rotas para as páginas / e /new corretamente, utilizando a função http.HandleFunc.

Além disso, verifique se você está importando corretamente os pacotes necessários nos arquivos controllers.go e db.go. Certifique-se de que todos os pacotes estão sendo importados corretamente e que não há erros de compilação.

Outra possível causa para o erro 404 é que o servidor não está encontrando os arquivos de template necessários para renderizar as páginas. Verifique se os arquivos index.html e new.html estão presentes na pasta templates e se estão sendo carregados corretamente no arquivo controllers.go.

Se você já verificou esses pontos e o problema persiste, pode ser útil verificar os logs do servidor para obter mais informações sobre o erro. Verifique se há mensagens de erro ou exceções sendo lançadas e tente identificar a causa raiz do problema.

Espero que essas dicas possam te ajudar a resolver o problema de "404 page not found" nas suas páginas. Se tiver mais alguma dúvida, é só me dizer. Espero ter ajudado e bons estudos!