@Kagtaviy

Как правильно вызвать функцию?

Здравствуйте, возникла небольшая проблема.
Есть контройлер с большим количеством функций, и в каждом нужно выполнять запрос к БД(использую redis)
Решил вынести подключение к бд в отдельную функцию. Выглядит это так:
func dbconnect() {
	client := redis.NewClient(&redis.Options{
		Addr:     conf.DBREDIS_PORT,
		Password: conf.PASSWORD_REDIS,
		DB:       0,
	})
}

Потом я хочу выполнить hget:
func Hgetacc(w http.ResponseWriter, r *http.Request) {
	em, err := client.HGet("Lol:lol", "lol").Result()
	if err != nil {
		fmt.Println("sory")
	}
}

Но компилятор ругается, помогите решить проблему:3
undefined: client in client.HGet (build)
  • Вопрос задан
  • 237 просмотров
Решения вопроса 1
uvelichitel
@uvelichitel Куратор тега Go
habrahabr.ru/users/uvelichitel
client нужно объявить глобально что бы все функции имели к нему доступ
var client *redis.Client
а func dbconnect должен только присваивать, а не объявлять
client = redis.NewClient(&redis.Options{   //   = вместо :=
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы