kostyaBro
я тоже через терминал делаю
хз он слишком часто в голанде
kostyaBro
я прогоняю чист на последний коммит
Кіт ✙
бедный ноут
Почему? Это ведь отличное охлаждение)
kostyaBro
Илья
Лол, там чел выше писал о материальной помощи в 58.0195 баксов))
Aleks
Sanity = nil
угу и я о том
Leonid
Sanity = nil
👍
Илья
Shohrukh
Привет ребята
Andrey
что такого есть в goland ради чего им стоит пользоваться?
Sanity = nil
да.
Emin Zalaev
Shohrukh
Что означает это поля .Можете объяснить?
Иван
xml
Andrey
раньше в goland было много чего, например можно было переименовать переменную (я не шучу, vs code это делал очень плохо например) но сейчас я уже не вижу разницы для себя
Emin Zalaev
Emin Zalaev
ну так никто не заставляет юзать голэнд
Shohrukh
xml
Понял но это всегда обезательно? То есть когда я хочу создавать структуру с форматом xml посмотрю всегда пишется в таком виде
Артем
Артем
Alexandr🇷🇺
что такого есть в goland ради чего им стоит пользоваться?
Удобно коннектиться к бд и данными ворочать на лево и направо. Ещё тесты запускать удобно(например не весь тест как go test -run blabla, а просто один тесткейс проверить). Ещё с гитом ide нормально работает. И с markdown работать гораздо удобнее, чем в той же vscode
Andrey
тесты кстати в вс коде удобнее, в голенде они крайне странно сделаны, хотя может уже поправили, я когда на голенде сидел иногда вс код запускал что бы тесты тыкнуть
Andrey
так например в vs code выглядит тест ковер по умолчанию
Илья
Илья
У меня при запуске тестов по всему проекту просто выводится количество пройденных, но нет дерева слева для итерации
Andrey
а вспомнил что еще в goland есть чего мне в vs code не хватало, это гит аннотации кто последний изменял строку в коде, в вс коде это как-то очень медленно работает
Alexandr🇷🇺
Ах да... Как по мне, так дебаг в голанде удобнее
Артём
Добрый день, хочу считать файл в win-1251 в памяти его конвертировать в utf-8 и далее post его отправлять на сервер. Использую стандартные либы, под мак работает, под виндовс не конвертит. Куда копать?
Andrey
Null
👣 autopprof — инструмент для автоматического профилирования Go-приложения и информирования в случае превышения заданного порога использования ЦП или памяти.
🖥 GitHub
@Golang_google
Andrey
Khalid
подскажите пожалуйста где ошибка
title := "История про улитку"
content := "Улитка выползла из раковины,\nвытянула рожки,\nи опять подобрала их."
expires := "7"
id, err := app.snippets.Insert(title, content, expires)
if err != nil {
app.serverError(w, err) // ошибка здесь происходит, щас покажу Insert()
return
}
Khalid
insert:
func (m *SnippetModel) Insert(title, content, expires string) (int, error) {
stmt := `INSERT INTO snippets (title, content, created, expires)
VALUES ($1, $2, NOW() AT TIME ZONE ('UTC'), NOW() AT TIME ZONE ('UTC') + INTERVAL '$3' DAY);`
result, err := m.DB.Exec(context.Background(), stmt, title, content, expires)
if err != nil {
return 0, err
}
rows_affected := result.RowsAffected()
return int(rows_affected), nil
}
Khalid
на всякий вот структура таблицы в го
type Snippet struct {
ID int
Title string
Content string
Created time.Time
Expires time.Time
}
а вот в базе данных
CREATE TABLE snippets (
id BIGSERIAL NOT NULL PRIMARY KEY,
title VARCHAR(100) NOT NULL,
content TEXT NOT NULL,
created TIMESTAMP WITH TIME ZONE NOT NULL,
expires TIMESTAMP WITH TIME ZONE NOT NULL
);
Khalid
ERROR 2022/12/01 23:36:42 handlers.go:71: mismatched param and argument count
Khalid
Илья
insert:
func (m *SnippetModel) Insert(title, content, expires string) (int, error) {
stmt := `INSERT INTO snippets (title, content, created, expires)
VALUES ($1, $2, NOW() AT TIME ZONE ('UTC'), NOW() AT TIME ZONE ('UTC') + INTERVAL '$3' DAY);`
result, err := m.DB.Exec(context.Background(), stmt, title, content, expires)
if err != nil {
return 0, err
}
rows_affected := result.RowsAffected()
return int(rows_affected), nil
}
потому что '$3' в скобках считается строкой, а не аргументом (плейсхолдером)
Илья
убери ' '
Khalid
ERROR: syntax error at or near "$3" (SQLSTATE 42601)
Илья
Khalid
INTERVAL $3 DAY вот так оставил
Khalid
Илья
Khalid
`INSERT INTO snippets (title, content, created, expires)
VALUES ($1, $2, NOW() AT TIME ZONE ('UTC'), NOW() AT TIME ZONE ('UTC') + INTERVAL $3 DAY);`
Илья
Мб лучше на бэке просто сделать
Илья
time.Now().Add()
Илья
и передать в бд
Leonid
Khalid
слушайте
Khalid
может я курлом что-то не то делаю
Khalid
curl -iL -X POST http://127.0.0.1:4000/snippet/create
Khalid
Leonid
Khalid
по очереди
Khalid
ой
Khalid
я получается совместил сделав по очереди
Khalid
во второй раз
Khalid
обязательно возвращать с "1" на "7"?
Khalid
вроде совместимо
Leonid
Khalid
Khalid
Khalid
ща
Khalid
ERROR: syntax error at or near "DAYS" (SQLSTATE 42601)
Khalid
insert:
func (m *SnippetModel) Insert(title, content, expires string) (int, error) {
stmt := `INSERT INTO snippets (title, content, created, expires)
VALUES ($1, $2, NOW() AT TIME ZONE ('UTC'), NOW() AT TIME ZONE ('UTC') + INTERVAL '$3' DAY);`
result, err := m.DB.Exec(context.Background(), stmt, title, content, expires)
if err != nil {
return 0, err
}
rows_affected := result.RowsAffected()
return int(rows_affected), nil
}
`INSERT INTO snippets (title, content, created, expires)
VALUES ($1, $2, NOW() AT TIME ZONE ('UTC'), NOW() AT TIME ZONE ('UTC') + INTERVAL '$3' DAY);` я этот запрос делал отдельно от го в постгресе и он работал
Khalid
ну у меня вместо $1 $2 $3 были какие-то значения соответсвующие конечно
Leonid
Работает ли без $3, просто
+ INTERVAL '7' DAY);`
?
Rakhimov Shukurullo
как я могу решить эту проблему?
Khalid
ERROR: permission denied for table snippets (SQLSTATE 42501)
:/
Khalid
ну в коде ошибок запроса нет кажись
Khalid
но тут уже может я в подключении нафенил
Khalid
Работает ли без $3, просто
+ INTERVAL '7' DAY);`
?
CREATE USER web WITH PASSWORD '190204'; так я создавал роль
вот так выдал права
GRANT SELECT, INSERT, UPDATE ON DATABASE "snippetbox" to web
dsn := flag.String("dsn", "postgres://web:190204@localhost:5432/snippetbox", "Название PostgreSQL источника данных") так передаю dsn при открытии
все же верно?
Илья
Илья
go get ссылка_на_репозиторий
Andrey
go get ссылка_на_репозиторий
Я надеюсь ты понимаешь, что все новички тут уже приходят с гошкой, где мало вероятно что это уже работает, ну или не рекомендуется уже использовать)
Илья