Дима
🔥🔥
Дима
Колбэки к сожалению всегда будут самым эффективным способом) Просто всё меньше и меньше приложений будут в состоянии эту разницу вообще отличить от погрешности
Artur
обожаю пирамидки
Дима
евентлуп
Artur
но ещё больше мне платят когда я вместо обычного then catch в модуле пишу самовызывающуюся async с try/catch и await внутри
Artur
потому что это модно
Дима
Самовызывающуюся? Сурово
Дима
Будь готов что с введением в ноду модулей начнутся сюрпризы)
Дима
Хотя они у всего серверного node сообщества будут, чо уж
Дмитрий
Sparrow
о нативных же
Дима
Любое что подключается через динамический require
Дима
Sparrow
а правда проблемы будут? так то и так через бабель все уже давно так и пишется
Дмитрий
Sparrow
ну это для особо одаренных 😀
Дима
Artur
пойду на пыхе писать тогда
Дима
Дима
Прям очень сильно
Дима
Я не замечал пока на время не перешел чисто в фронт с import везде — подразумевается статическая инициализация всего всего
Sparrow
просто я так понимаю, что вся сложность перевода ноды на нативные модули как раз на семантическом уровне. синтаксически через транспайлеры и так все давно уже работает
Дима
Sparrow
и эту проблему я не знаю как на статике элегантно решить
Дима
Сделать нормальную функцию?)
Sparrow
ну типа того... Но это все равно тот же костыль
Дима
Нет, это нормальный подход) Сделать функцию для действия и вызывать её когда требуется
Sparrow
пожалуй ты прав, да
Alexander
Всем прив. Народ, как думаете, какой статус должен возвращать сервер если юзер постарался залогинится и по какой-то причине ему не удалось?
Alexander
401 Unathorized ?
shoo
shoo
парни, что делаю неправильно ? пароль хэшируется, но не записывается
Sparrow
401 Unathorized ?
401, ага. А если залогинился, но ему нельзя с этим ресурсом играть, то 403
Alexander
спс!
Sparrow
shoo
Sparrow
ну вот где хэшишь, там и юзай
shoo
shoo
правильно делаю ?
Vitaly
Дима
Ну смотря сколько хэшировать 😅
KlonD90
Sparrow
правильно делаю ?
ты это как-то сложнее, чем нужно, написал. я с телефона, но вроде работает?
Дима
Ожидал твоей реакции 🙃
shoo
Sparrow
не работает )
в общем, ты с хэш-функции должен получать промис, который можешь в await обернуть
Sparrow
буду возле десктопа, пришлю снипет, если пинганешь через часик
Sparrow
ок
Anonymous
А кто знает как связывать jwt авторизацию и socket.io ?
Leet
а что именно связывать то?
Dmitrii
при конекте через сокет ты можешь прочитать хэдеры http запроса
Artur
Artur
podrobnee zdes
https://auth0.com/blog/auth-with-socket-io/
Anonymous
спасибо
хотя из их обрезков в примерах не очень понятно
буде разбираться )
shoo
Sparrow
сейчас напишу
Sparrow
в общем смотри, сначала архитектурное замечание -- не совсем понятно, зачем тебе хэш в модели, если ты его только для регистрации используешь, а потом все равно же берешь значение извне для сравнения.
Sparrow
то есть, тащить в модель то, что используется только один раз, нет особого смысла
shoo
shoo
пример нашел такой в общем )
Sparrow
дальше все просто, пишешь
return hash(password, salt)
.then(r => { вот тут r это уже готовый хэш })
.catch(err => {чтотопошлонетак})
Sparrow
для сравнения можешь использовать compareSync в принципе, но логика там такая же
shoo
shoo
вот так делаю, не хочет
Cenator 🐈
https://www.npmjs.com/package/@atomix/eslint-config
Не благодари
Cenator 🐈
И форматтер встроенный включить не забудь
shoo
Cenator 🐈
что это ))
Штука одна, чтобы кодстайл норм был
Sparrow
а как ты проверяешь, что не работает?
shoo
Sparrow
тебе гарантирован хэш только вот в этом месте .then(r => { вот тут r это уже готовый хэш })
Sparrow
во всех остальных местах это звучит как "когда-нибудь хэш конечно вычислят, но пока он undefined"
shoo
Sparrow
ну там и проверяй, чему r равен
shoo
Sparrow
он присваевается, конечно же. просто в момент, когда ты его где-то на стороне проверяешь, он еще не вычислен и не присвоен