Configuration

  • Di production, semua konfigurasi dimasukkan ke dalam environment server

  • Di development, semua konfigurasi akan dibaca dari file .env

  • Konfigurasi yang akan diatur meliputi : port server, database driver, database connection

  • Sebagai tambahan dibuat konfigurasi penanda apakah aplikasi berjalan di production atau lokal

  • Buat file .env yang isinya

APP_PORT=0.0.0.0:9000
APP_ENV=local

DB_DRIVER=mysql
DB_SOURCE=root:pass@tcp(localhost:3306)/essentials?parseTime=true
  • Kemudian buat library untuk membaca file .env dan menyalinnya ke environment OS. Buat file libraries/config/config.go

package config

import (
    "io/ioutil"
    "os"
    "strings"
)

//Setup environment from file .env
func Setup(file string) error {
    data, err := ioutil.ReadFile(file)
    if err != nil {
        return err
    }

    datas := strings.Split(string(data), "\n")
    for _, env := range datas {
        e := strings.Split(env, "=")
        if len(e) >= 2 {
            os.Setenv(strings.TrimSpace(e[0]), strings.TrimSpace(strings.Join(e[1:], "=")))
        }
    }

    return nil
}
  • Ubah file main.go agar meload file .env jika environment-nya developement atau lokal, dengan menyisipkan kode

  • Ubah file main.go agar membaca env port saat membuat parameter server

  • File main.go akan menjadi seperti ini

  • Ubah file libraries/database/database.go

  • Ubah file cmd/main.go menjadi seperti berikut :

Last updated

Was this helpful?