Aula 05 – Golang – Fiber – Packages

Aula 05 – Golang – Fiber – Packages

Voltar para página principal do site

Todas as aulas desse curso

Aula 04                                               Aula 06

Fiber

Fiber

Pacote Programador Fullstack

Pacote Programador Fullstack

Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook

Sigam o Código Fluente no Instagram e no TikTok.

Link para a Digital Innovation

Quer aprender python3 de graça e com certificado? Acesse então:

workover

Meus link de afiliados:

Hostinger

Digital Ocean

One.com

Código da aula: Github

Melhore seu NETWORKING

Participe de comunidades de desenvolvedores:

Fiquem a vontade para me adicionar ao linkedin.

E também para me seguir no GITHUB.

PIX para doações

PIX Nubank

PIX Nubank


Aula 05 – Golang – Fiber – Packages

Vamos criar três pastas:

  • database
  • routes
  • controllers

Na pasta database, vamos criar um arquivo chamado: connect.go

Dentro, vamos criar a função connect() e transferir o código relativo a conexão com o banco do main.go (a parte em laranja) para essa função connect().

Vamos retirar os códigos que eram apenas exemplos, mas que não vão fazer parte de fato da aplicação, a linha que tem:

d, e := divide(2, 0)
fmt.Println(d, e)

E a própria função divide().

Resumindo, tudo que tá em laranja sai do main.go.

fiber-project/main.go  

package main

import (
	"errors"
	"fmt"

	"github.com/gofiber/fiber/v2"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

func main() {
	var dsn = "root:mysql1234@/fluent_admin?charset=utf8mb4&parseTime=True&loc=Local"
	var v = "Não conseguiu conectar ao banco de dados"
	_, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})

	if err != nil {
		panic(v)
	}
	fmt.Println("Conexão OK!")

	d, e := divide(2, 0)
	fmt.Println(d, e)

	app := fiber.New()

	app.Get("/", home)

	app.Listen(":3000")
}

func home(c *fiber.Ctx) error {
	return c.SendString("Hello, World 👋!")
}

func divide(a int, b int) (int, error) {
	if b == 0 {
		return 0, errors.New("you cannot divide by zero")
	}
	return a / b, nil
}

O main.go vai ficar assim:

fiber-project/main.go  

package main

import (
        "fiber-project/database"
	"github.com/gofiber/fiber/v2"
)

func main() {
	app := fiber.New()
	app.Get("/", home)
	app.Listen(":3000")
}

func home(c *fiber.Ctx) error {
	return c.SendString("Hello, World 👋!")
}

E o connect.go vai ficar assim:

fiber-project/database/connect.go  


package database

import (
	"fmt"

	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

func Connect() {
	var dsn = "toticavalcanti:mysql1234@/fluent_admin?charset=utf8mb4&parseTime=True&loc=Local"
	var v = "Não conseguiu conectar ao banco de dados"
	_, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})

	if err != nil {
		panic(v)
	}
	fmt.Println("Conexão OK!")

}

Vamos criar a pasta routes e dentro o arquivo routes.go

fiber-project/routes/routes.go  


package routes

import (
	"fiber-project/controllers"

	"github.com/gofiber/fiber/v2"
)

func Setup(app *fiber.App) {
	app.Get("/", controllers.Home)
}

Agora vamos criar a pasta controllers e dentro o arquivo authController.go

fiber-project/controllers/authController.go  

package controllers

import "github.com/gofiber/fiber/v2"

func Home(c *fiber.Ctx) error {
	return c.SendString("Hello, World 👋!")
}

E vamos tirar as partes de código que não irão mais fazer parte da main.go

fiber-project/main.go  

package main

import (
        "fiber-project/database"
	"fiber-project/routes"

	"github.com/gofiber/fiber/v2"
)

func main() {
        database.Connect()
	app := fiber.New()
	routes.Setup(app)
	app.Listen(":3000")
}

Derrube o servidor com ctrl + c e reinicie ele com:


go run main.go

Por agora é só, nos vemos na próxima, até lá!

Código da aula: Github

Voltar para página principal do blog

Todas as aulas desse curso

Aula 04                                               Aula 06

Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook

Link do código fluente no Pinterest

Novamente deixo meus link de afiliados:

Hostinger

Digital Ocean

One.com

Obrigado, até a próxima e bons estudos. 😉

About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>