@nodejs_ru

Страница 2553 из 2748
Alexey
15.09.2018
08:36:54




Чекните код плиз. Что можно упростить или улучшить? Суть вызов внешнего API в ответ на запрост с фронта



Google
Alexander
15.09.2018
08:40:04
А зачем ты делаешь get error_message с дефолтным значением? У тебя же всегда будет возвращаться ошибка

Alexey
15.09.2018
08:42:06
логично.. Почему только не отловилось это. Убрал



Интернет Магазин
15.09.2018
08:44:26
Добрый день, ребят у меня к вам вопрос.

Alexey
15.09.2018
08:44:32
еще вопрос.. после успешнего получения данных, нужна еще логика .. вот ее лучше вообще после блока try catch ну и туда же return res.json() ? или как сейчас внутри блока try

Интернет Магазин
15.09.2018
08:45:22
Короче есть у меня openserver поставил mongodb сейчас у меня проект работает через mlab.com. Вопрос в том как мне подключить локальную базу ?

Интернет Магазин
15.09.2018
08:45:29
Чет не могу понять как это сделать

Alexey
15.09.2018
08:46:09
Я в try пишу
я тоже так думаю... хотя были сомнения..

Alexander
15.09.2018
08:52:27
Добавь в следующую мидлварю

Дмитрий
15.09.2018
08:53:22
finally

dvv
15.09.2018
09:39:40
А функция get что выполняет?

Alexey
15.09.2018
09:40:36
Добавь в следующую мидлварю
не хочеться завязываться на особенности именно express да и не наглядно..

Google
Alexey
15.09.2018
09:40:59
finally
хм.. а если там далее нск запросов которые тоже надо бы в try каждый..

А функция get что выполняет?
ну просто проверка на вложенность.. что бы не ругалось..

мне кажеться логично или внутри того же try или просто несколько try catch один за другим... но во втором случае с присванием чуть сложнее.



dvv
15.09.2018
09:43:13
Error message лучше обрабатывать тогда выбросом исключения, которое поймает catch

Alexey
15.09.2018
09:43:42


dvv
15.09.2018
09:44:03
Если используете try catch унифицируйте выброс и обработку ошибок

Alexey
15.09.2018
09:44:33
Error message лучше обрабатывать тогда выбросом исключения, которое поймает catch
тогда в catch придеться ведь городить условия.. Типа if (error === validation ) а так этого не надо..

dvv
15.09.2018
09:45:04
Классифицируйте ошибки по классам

Alexander
15.09.2018
09:45:16
шо за createError ? шо за пакет

dvv
15.09.2018
09:45:19
И обрабатывайте в зависимости от класса ошибки

Alexander
15.09.2018
09:45:25
А ещё можешь в try catch только await обернуть

Alexey
15.09.2018
09:45:47
шо за createError ? шо за пакет
пакет создающий ошибку с ее кодом... потом я это в глобальном обработчике ошибок ловлю

dvv
15.09.2018
09:45:54
шо за createError ? шо за пакет
Это скорее всего функция которая форматирует ответ сервера

Alexey
15.09.2018
09:46:03
А ещё можешь в try catch только await обернуть
а по сути только он и обернут..

Alexander
15.09.2018
09:46:07
Alexey
15.09.2018
09:46:18
Alexander
15.09.2018
09:46:23
thx

dvv
15.09.2018
09:46:50
пакет создающий ошибку с ее кодом... потом я это в глобальном обработчике ошибок ловлю
Вот для этого и предназначены классы ошибок наследованные от Error

Alexey
15.09.2018
09:47:11
а ловлю потом глобально так: app.use(function(err, req, res, next) { const error_status = err.status || 500 logger.error(${error_status} - ${err.message} - ${req.originalUrl} - ${req.method} - ${req.ip}) res.status(error_status).send(process.env.NODE_ENV == "development" ? err.message : "Server error.") })

Google
Alexander
15.09.2018
09:48:46
thx x2

Alexey
15.09.2018
09:49:52
Короче вижу ничего существенно улучшить не удасться.. скоро допишу этот контроллер и покажу..



это уже весь контроллер

dvv
15.09.2018
09:54:40
Залепуха, что тут улучшишь. Подрастёт код строк на 300, тогда и отрефакторите исходя из возникшего понимания архитектурного строения приложения. Тогда и try catch, как необходимо использовать придёт понимание и другие абстракции встанут на нужное место

Alexander
15.09.2018
09:55:08
да он уже месяца 2 этот токен декодер пилит

Alexey
15.09.2018
09:55:20
да он уже месяца 2 этот токен декодер пилит
ну вообще я и другие части кода паралельно делаю.. и еще одну совсем не связанную задачу на этой неделе решал.. и на фронте пишу

но вообще если время есть почему не попилить... ну сейчас то более менее?

dvv
15.09.2018
09:56:11
Рефрешите JWT каждый запрос?

Alexey
15.09.2018
09:56:35
Рефрешите JWT каждый запрос?
который token, а не refresh ?

что значит каждый запрос?

рефрешу когда token протухает..

dvv
15.09.2018
09:57:34
У вас в JWT получается access и refresh? Два токена

dvv
15.09.2018
09:57:51
Ну ясно... а зачем тогда вообще JWT вам?

Alexey
15.09.2018
09:58:25
Ну ясно... а зачем тогда вообще JWT вам?
сейчас скажете лучше сессии? для авторизации... хотите сказать что я все равно ведь что то на сервере храню в БД?

Vitaliy
15.09.2018
09:59:54
https://t.me/why_jwt_is_bad

Alexey
15.09.2018
10:00:11
я все это знаю... но как быть? поручено как следует сделать с jwt

Google
Alexey
15.09.2018
10:00:27
да в БД хранить не хочеться... но надо как то блеклистить..

да можно редис.. он с win плохо дружить.. а отлаживать на win будем по любому...

dvv
15.09.2018
10:00:54
Так и использовать блеклист без лишнего нагромождения

Alexey
15.09.2018
10:00:57
ну и в redis хранить это тоже хранить на сервере..

dvv
15.09.2018
10:01:20
Не пакет а концепцию

Alexey
15.09.2018
10:01:32
https://www.npmjs.com/package/blacklist

Не пакет а концепцию
понимаю писать именно использованнные, а не валидные и в связке с user

dvv
15.09.2018
10:02:12
Редис или мемкэш все равно главное чтобы консистентные данные были и при этом нагрузка на сервер была минимальная

Alexey
15.09.2018
10:02:13
короче говоря. Писать token + user в БД считаете костыль?

dvv
15.09.2018
10:03:00
Ну нам нужно сохранить более менее stateless у JWT но при этом иметь функционал отзыва токена

Без блеклиста кто это сделает, я обниму того чувачка

Но тут можно обойтись и без пары рефреш аццесс

Alexey
15.09.2018
10:04:25
Ну нам нужно сохранить более менее stateless у JWT но при этом иметь функционал отзыва токена
значит можно взять пакет готовый для блеклиста... ну и настроить его что бы в dev писал просто в память. А в прод настроем redis. Логично?

Но тут можно обойтись и без пары рефреш аццесс
понятное что можно один и тот что token обновил отозвал... я так тоже делал.. хочеться уже остановиться на самом прозрачном варианте .. а то действительно долго все это изучаю,

Sars
15.09.2018
10:06:08
Добрый день. Кто нибудь может подсказать как построить клиентские запросы с помощью swagger.json описания?

dvv
15.09.2018
10:07:36
Но нужно чтобы данные были консистенты, если сервер упадёт то блеклист не должен потеряться

Alexey
15.09.2018
10:08:18
Но нужно чтобы данные были консистенты, если сервер упадёт то блеклист не должен потеряться
https://github.com/nesso99/jwt-blacklist#readme чем все же готовый пакет плох? учитывая тем более что быстрее будет..

dvv
15.09.2018
10:09:36
Возможно, я писал свою обертку над монгой, кэш по сути это объект в памяти

Google
dvv
15.09.2018
10:09:46
Да ничем не плох, может даже хорош

Alexey
15.09.2018
10:10:03
Возможно, я писал свою обертку над монгой, кэш по сути это объект в памяти
я знаю.. а когда сервер перезагружаеться ..ну вроде как то все эти редисы это учитывают.

Да ничем не плох, может даже хорош
ну так можно на продакшне в linux redis а на dev в win просто память?

а кстати все способы на win поставить redis это бее?

dvv
15.09.2018
10:10:46
Но если учитесь что то делать, то необходимо понимание процессов которые осуществляются выбранными пакетами, а для этого сперва через свои шишки пройти надо )))

Eugene
15.09.2018
10:10:59
?

Alexey
15.09.2018
10:11:26
Я же вроде сделал уже сам и с хранением в mongo. Теперь можно попробовать и готовый пакет..

dvv
15.09.2018
10:11:50
Ну если знаете что ожидать от функциональности пакета, то попробуйте

Eugene
15.09.2018
10:11:54
А вам точно нужен jwt?:)

Alexey
15.09.2018
10:12:05
dvv
15.09.2018
10:12:10
Да куда уж без него ))

Eugene
15.09.2018
10:12:26
Вы помойму изобрели обычные токены :)

Alexey
15.09.2018
10:12:27
Ну если знаете что ожидать от функциональности пакета, то попробуйте
ну и блеклистить нужно очевидно refresh токен... тк access сам стухает за 10 мин

dvv
15.09.2018
10:12:35
Не видел, passport.js прикрутили?

Страница 2553 из 2748