plantbook-gotmpl
plantbook-gotmpl
Данный проект является попыыткой сделать фронтенд часть для микросервисного проекта plantbook. Исключительно в учебных целях.
1. Страница главная;
- Название проекта;
- Колличество растений, применил обычный скрипт для легкости и чтобы не перегружать приложение;
- Растения, которые имеются в базе данных (Тут остается не закрыт вопрос с отображением изображений растений. В нашей базе данных массив, я этого не указал. Необходимо переделать);
2. Страница входа в систему;
- Login;
- Password;
- Button (При нажатии рендерит с ввбидыми данными. Пока заглуша)
3. Страница 404;
4. Редирект при вводе в форму;
Ошибки
Был установлен локально Postgress у него был порт 5432. Удалил - заработало.
failed to connect to `host=localhost user=plantbook_admin database=plantbook_admin`: failed SASL auth
(expected AuthenticationSASLFinal message but received unexpected message)
Не запущен posgresql
failed to connect to `host=localhost user=plantbook_admin database=plantbook_admin`: dial error (dial
tcp 127.0.0.1:5432: connectex: No connection could be made because the target machine actively refused it.)
Взаимодействие с базой данных
Используется драйвер pgxpool
// Соединение с экземпляром Postgres - основная функция
func connect(ctx context.Context) *pgxpool.Pool {
url := "postgres://plantbook_admin:mypassword@localhost:5432/plantbook_admin"
dbpool, err := pgxpool.Connect(ctx, url)
// dbpool, err := pgxpool.Connect(ctx, os.Getenv("DATABASE_URL"))
if err != nil {
log.Error("Couldn't connect to your database psql")
}
log.Info("Connect to your database psql")
return dbpool
}
Но, чтобы инициализорвать эту функцию (базу данных), необходимо в начале каждой функции добавлять
func PlantsAll() ([]model.Plant, error) {
ctx := context.Background()
dbpool := connect(ctx)
defer dbpool.Close()
....
}
иначе данные Вы не получите!
Консоль
Для эстетики добавил пакет log для красивого отображения логгов.
log "gopkg.in/inconshreveable/log15.v2"
SQL команды
winpty docker exec -it 500 bash
echo $PGDATA
cd $PGDATA
psql -U plantbook_admin
\l
\dt
select*from users;
select id from users;
...