Gleb
им удача не нужна, там отлично належены все бизнес-процессы
Надо лучше всего заходит в рамках микросервисной архитектуры, а нафига там нужен loopback и всё подобное монструозное - я без понятия.
Gleb
Допилю - будет. Когда - не знаю 😁
Dmytro
🙁
Dmytro
расскажите плиз про микросерверную
Dmytro
когда она и зачем
KlonD90
хз микросервисы больше про удобство тестирования и выделение логического юнита. но в целом и знание SOA ничем не отличиается от микросервисов
Gleb
Скажем так, лучший выбор для потоковой обработки запросов. То есть что бы 1 процесс приложения (воркер на очереди или REST API там) выполнял маленькую задачку (валидировал данные, дёргал остальные сервисы и т.д.), а основную часть времени тупо гонял/ждал данные по сети.
Фεδως
для задач где мало вычислений, но много операций по I/O
Gleb
Там где нужна Highload-CPU задача берёшь и пишешь микросервис на Go/Scala/C/C++ (или как вариант аддон для node.js на C) и всю работу с данными уносишь туда. Например, если у тебя есть задача сконвертировать кучу изображений и сложить их на диск + метаинформацию в базу, то ты их конвертируешь через какой-нибудь sharp (нативный модуль на С), потом инфу складываешь в монгу, а саму фотку пайпишь в minio. В итоге ты 95% времени ты ждёшь монгу, minio и sharp.
Gleb
Как гофер, я за си в таком случае
Ну а может чувак захочет пописать на Haskell или там Forth. В этом ж одно из самых крутых приемуществ микросервисов.
Anonymous
Хероку или Азур?
Anonymous
Для прототипирования, микро проектов, хостинга статики, ботов, апи (но под минимальной нагрузкой)
Anonymous
В Азуре, вроде, 10 инстансов бесплатно
Kenya-West
Ребята, вопрос! Какой в таком случае пошагово будет авторизация: https://habrahabr.ru/post/324066/ и https://github.com/waubau/koa_jwt_auth ? 1. Регаюсь по Post-запросу на localhost/user 2. В localhost/login по Post-запросу получаю токен JWT 3. Тут же его проверяю другим запросом, например, в localhost/custom. Ведь без обращения к иному url нельзя проверить, верный токен получил юзер или нет. Верно расписал алгоритм?
Igor
зачем проверять токен еще одним запросом если он и так пришел с бека?
Kenya-West
Igor
скорее, во всех других запросах где требуется авторизация по токену - проверяется токен
Igor
чтобы понять что за юзер у нас пытается получить доступ
Igor
и разрешить или запретить
Kenya-West
скорее, во всех других запросах где требуется авторизация по токену - проверяется токен
Понял, теперь во всех запросах я обязан указывать токен юзверя - для делегирования прав.
Igor
когда делаешь запрос к бекенду ты посылаешь с запросом токен. Бекенд этот токен проверяет и решает давать тебе ответ или нет
Артур
Правильно ли я понимаю что jwt это те же сессии только в другом формате?
Gleb
Правильно ли я понимаю что jwt это те же сессии только в другом формате?
Данные сессии хранятся на сервере, а jwt на клиенте. Jwt - это JSON объект с данными, закодированным в Base64 + хэш от некого секретного ключа + данных.
Gleb
За счёт подписи можно удостоверяется, что данные выдал сервер (а не клиент залез в куки/localstorage и поменял себе userId) и не хранить это всё на сервере.
Gleb
Иногда бывает полезно совмещать оба подхода, когда в jwt кладётся немного данных, а большие объёмы складываются во внешнее хранилище типа Redis.
Igor
что вы думаете про https://strapi.io/ ?
Kenya-West
Немного оффтоп, но все равно вопрос - как организовать разделение учётной записи пользователя и данных о нем (биография, контакты и тд) в монге? Может, скинете какие-либо практики на эту тему?
Igor
зачем?
Kenya-West
зачем?
ХЗ, но звучит логично. Или я усложняю?
Igor
не понятно какая задача решается. Ничто не мешает иметь модель user с полями email, bio, phone
Victor
Возможно кому-небудь пригодиться. При отправке на почту ссылки с custom schema url - (myapp://path?variable1=value&variable2=value) => путь убираеться. Решение. Отправляем на почту http ссылку и делаем JS редирект.
Kenya-West
не понятно какая задача решается. Ничто не мешает иметь модель user с полями email, bio, phone
Мешать-то оно технически не мешает, но что говорят best practices по этому поводу?
Alex fivem
почему doError = false?
Alex fivem
и там и там строка
Andrey
type === type
Andrey
твои error'ы друг от друга мб различаються
Alex fivem
так ведь везде строка, почему отличаются?
Andrey
да хрен знает может быть там error + white space
Andrey
а на выходе - стринг
Alex fivem
непонятно, почему код ведет себя так, как ожидается хотя логически не должен
Andrey
ну тогда я не знаю
сomorsiс
Проверь еще на всякий typeof error
Sergey
сomorsiс
А, уже
Alex fivem
а вот это вообще прикол
Sergey
а вот это вообще прикол
а по кодам символов никак проверить?
Sergey
type === type ложно только если type = null
Дима
NaN же
Sergey
блэд точно
Alex fivem
блин, все понял, невнимательность
Sergey
Sergey
зачем?
Sergey
есть же в ноде готовые
Sergey
да и в нпм их множество
Sergey
нафига такое
kdm🇩🇰
кто юзает в проде 8.9?
Nicholas
пока только 8.6, но там разница же не большая
Gleb
кто юзает в проде 8.9?
А что, какие-то баги полезли? У нас 8.7.0 на диком старом монолитном говнокоде...
kdm🇩🇰
у меня 8.2, обновить нет?
Таймураз
у меня 8.2, обновить нет?
Обновляй, там секьюирити ишью был
Gleb
я сам сейчас решаюсь, вроде lts все дела
Да, обнови, там было обновление V8
Таймураз
Мы сами будем переезжать, как закончится гемор
Nicholas
вроде пока багов не встречал, хотя вру когда boom обновил попросили >= 8.8
Gleb
Обновляй, там секьюирити ишью был
Ну он закрывал косяк из 8.4 =)
kdm🇩🇰
мерси:)
Gleb
у меня 8.2, обновить нет?
Ещё там spread обектов появился { ...{} }
Gleb
Попробуй prepare
Alex fivem
нафига такое
я хотел от нодовского EE отнаследоваться и ожидал, что если в обработчике какого-либо события кинуть throw, то он попадет в обработчик error, но он не попадает
Алексей
ты реализуешь EventEmitter?
он походу не реализует EE, а манкипатчит его
Alex fivem
он походу не реализует EE, а манкипатчит его
если кинуть throw в обработчике события, то ожидать что сработает обработчик error нелогично?
Алексей
потому что если у error нет обработчика и он эмиттится, то выкидывается исключение