@12rbah

Как сохранить данные полученные из пользовательской формы в БД?

Такая проблема, что все handler-ы лежат в отдельном пакете и хотелось бы узнать как из функций AddUser/GetUserInfo можно добавить/получить данные из БД или как правильно обеспечить доступ из данных функций к переменной DB, чтобы не перемещать все обработчики в package main.
import (
	"handlers"
)
func main(){
         //...
        //установление соединения к postgres
        DB, err = ConnectToDB()
        //...
         http.HandleFunc("/adduser/", handlers.AddUser)
	http.HandleFunc("/getinfo/", handlers.GetUserInfo)
  	http.ListenAndServe(":8080", nil)
}
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 1
bitniks
@bitniks
Go/PHP/Symfony developer
Можно сделать так
package "handlers"

import "database/sql"

type User struct {
	db *sql.DB
}

func NewUser(db *sql.DB) *User {
	return &User{db: db}
}

func (u *User) Add(w http.ResponseWriter, r *http.Request) {
	//  u.db - доступ к db
}

func (u *User) GetInfo(w http.ResponseWriter, r *http.Request) {
	//  u.db - доступ к db
}


package main

import "handlers"

func main(){
	//...
	//установление соединения к postgres
	DB, err = ConnectToDB()

	userHandler := handlers.NewUser(DB)

	http.HandleFunc("/adduser/", userHandler.Add)
	http.HandleFunc("/getinfo/", userHandler.GetInfo)
	http.ListenAndServe(":8080", nil)
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы