Pavel
а ты на серваке тупо мидлварью смотришь живой он или нет
Anonymous
а как реализовать эту мидлвару? есть пример реализации?
Anonymous
время жизни проверять по времени создания?
V
посмотри на jwt
V
там все с примерами есть
Rem1te
время жизни проверять по времени создания?
типа того если время создания - время текущее больше какого-то значения - проекспареный
Anonymous
вроде нашел, осталось сообразить как собрать весь конструктор воедино
Михаил Макарычев
посмотри на jwt
Откуда такой хайп вокруг jwt?
V
он решает задачу автора
Mykhailo
Ребята, помогите пожалуйста найти одно видео с конференции. Не помню название. Там очень харизматичный докладчик ( кажется из Ростова ) рассказывал про асинхронное и реактивное программирование и про Koa.js. И кажется докладчик был босым на докладе, но это не точно
Алексей
всем привет, подскажите почему блок catch может не срабатывать при ошибке в 10 строке? http://joxi.ru/LmGpEZxcRdV5e2 сама функция: https://github.com/typeorm/typeorm/blob/master/src/entity-manager/EntityManager.ts#L270
Алексей
этот кусок кода делает запись в БД с помощью typeORM. Ошибка просто пролетает вверх по стеку как будто нету блока catch
Алексей
а почему бы и нет =) или с ним есть нюансы?
Алексей
я в ноде новичок, проект учебный для себя на попробовать
Таймураз
этот кусок кода делает запись в БД с помощью typeORM. Ошибка просто пролетает вверх по стеку как будто нету блока catch
Скорее всего, в библиотеке ошибка не считается программной (promise не реджектится)
Алексей
там происходит ошибка связаная с нарушением ограничения уникальности, когда я повторно запускаю скрпит. Если бы промис не реджектился то скрипт бы не падал ?
сomorsiс
а скрипт падает или нет?
Алексей
падает
сomorsiс
а, понял
Алексей
http://joxi.ru/E2pndloHBelOLr
👨🏼‍💻
http://joxi.ru/E2pndloHBelOLr
не забывай ставить ; в конце строки
Алексей
; ставлю, я настроит tslint что он сам проставялет ; если пропущено
сomorsiс
а ты уверен что вывод происходит не из кеч-блока?
👨🏼‍💻
и еще, у тебя там в модели uniq, а ON CONFLICT ты описал?
Алексей
поидее да так как падает в момент записи
Алексей
если я вместо async/await использую then, catch то ошибка перехватвается нормально
Алексей
как только заворачиваю в try то она пролетает мимо
Алексей
ON CONFLICT это что такое?
Алексей
ON CONFLICT это на уровне БД ?
👨🏼‍💻
добавь в Квекри: ON CONFLICT (username) DO UPDATE SET username = $2
👨🏼‍💻
или че у тебя там апдейтится
Алексей
логика такая - скрипт должен создать пользоваетеля (админа), если его запустит второй раз то я хочу перехватывать ошибку duplicate username и просто завершатся
Алексей
Mr. k что то я не понял куда мне копать :)
👨🏼‍💻
Mr. k что то я не понял куда мне копать :)
тебе база вовращает ошибку --- твоя ошибка обрабатывается в блоке catch. Вот там уже и делай что надо -- это вызывай обработку повторного вызова, или вываливай ошибку
сomorsiс
у него ошибка пролетает мимо кетч-блока
Алексей
ага, я её не получаю в блоке catch
Алексей
может это typeScript компилятор неправильно код генерит
👨🏼‍💻
у него ошибка пролетает мимо кетч-блока
если мимо --- значит это валидный ответ от базы, и она в try(.then). Надо ловить там. Но если так происходит - значит что-то не так с кодом/архитектурой
Таймураз
Попробуй удалить finally
👨🏼‍💻
Попробуй удалить finally
+++! вообще не видел что там такое есть 🙂
Алексей
без или с finaly одинаково
Алексей
пробовал уже
Таймураз
хз Из советов один остается- завязывай с orm-ками А так- без исходников не помочь
Алексей
я как раз из за этой ORM-ки и хотел попробовать ноду =)
👨🏼‍💻
Та всё норм в ОРМ. Тут вопрос про код скорее и логику
сomorsiс
кинь сгенеренный код
Таймураз
Та всё норм в ОРМ. Тут вопрос про код скорее и логику
Заебешься учить себя думать также, как и разработчики orm
Таймураз
Есть стандарт sql, по мне так его достаточно
👨🏼‍💻
Таймураз
Вот я даже не собираюсь тебя учить 🙂
"Заебешься учить себя"
Алексей
да ORM как ORM всё "стандартно" ничего учить не надо, в ней на мой взгляд всё академично и понятно
👨🏼‍💻
"Заебешься учить себя"
А себя да, учить заебусь 🙂 Но что ж поделать? Тут или так или квери писать руками
Таймураз
учить себя- учиться "ся"- возвратный суфикс. Когда ты действие к себе применяешь
Таймураз
А себя да, учить заебусь 🙂 Но что ж поделать? Тут или так или квери писать руками
Писать запросы руками. Уж сырой sql много проще готовить И все равно приходится его писать, рано или поздно
Алексей
Есть стандарт sql, по мне так его достаточно
А по мне так нет. SQL лучше оставить для сложных или критичных к производительности запросов, а для всего остального есть ORM. Но не в ноде конечно же.
Таймураз
knex('db_name').select()
сomorsiс
но в кверибилдерах тоже надо понимать как думал его создатель
Таймураз
но в кверибилдерах тоже надо понимать как думал его создатель
Но при этом на одну прослойку абстракции меньше
𝒟𝓂𝒾𝓉𝓇𝒾𝓎
knex('db_name').select()
Самый лучший вариант)) Правда все время еще добавлять .withSchema('schemaName')
Алексей
под голым sql я подразумеваю query builder-ы
Если в ноду завезти нормальную orm, то и без query builder можно большую часть времени обходиться. Вон в том же Hibernate вообще довольно удобно в этом плане сделано.
👨🏼‍💻
knex('db_name').select()
ну или так, все равно лучше чем для таких вещей квери писать. а если добавить это как транзакцию, и еще и условия и джоинов туда
👨🏼‍💻
А потом сиди и представляй себе эту кверю. Та ну нафиг
Таймураз
Меня прям вставляет knex, хз как остальным Пытался на sequelize что-то делать- не зашло
👨🏼‍💻
Я вот как раз за sequelize. Всё просто и понятно. А если че-т фигово, всегда можно заставить его прямо выполнить кверю
Таймураз
Попробую позже еще раз за sequelize засесть
👨🏼‍💻
Хотя knex я не юзал ни разу толком. Надо попробовать. Возможно изменю свою точку зрения
Алексей
Я вот как раз за sequelize. Всё просто и понятно. А если че-т фигово, всегда можно заставить его прямо выполнить кверю
А я против sequelize. Он более-менее сложные запросы для pg генерировал криво (в 3 версии точно).
👨🏼‍💻
Мужики, берите Монгу и Монгуз! Всё будет афигенно! 🙂
сomorsiс
лол
Таймураз
orm должна работать железно Не помню, что мне в архитектуре sequelize-а не нравилось, но очень часто возникали вопросы со сложным говном
Алексей
Мужики, берите Монгу и Монгуз! Всё будет афигенно! 🙂
Вот с монгой то как раз очень удобно из ноды работать. Но только монга - это довольно специфичная вещь и не для всех задач она хорошо подходит.
Алексей
orm должна работать железно Не помню, что мне в архитектуре sequelize-а не нравилось, но очень часто возникали вопросы со сложным говном
опять же с архитектурой всё было весьма печально в той же 3 версии и вообще после глючности и кривости такого крупного и популярного проекта как sequelize я немножко даже разочаровался в экосистеме ноды
Таймураз
во 2 версии были лаги. СЕйчас 4 версия, очень хорошо причесали её
Я тыкал где-то полтора года назад На тот момент третья была