Size: a a a

Node.js — русскоговорящее сообщество

2021 March 03

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Nikita
это не реальный проект, я конечно же мог подключить какой то typedi, tsyringe, inversify, или даже сам нест, но я хочу попробовать реализовать это без доп. зависимостей

в базу лезть ок, давайте не будем начинать очередной спор про jwt :D
Кто сказал JWT? 👀
источник

N

Nikita in Node.js — русскоговорящее сообщество
Grigorii K. Shartsev
Кто сказал JWT? 👀
ох началось))
источник

N

Nikita in Node.js — русскоговорящее сообщество
Gleb
при каждом запросе лезть в базу вроде как не круто, хоть и иногда неизбежно, тут посмотри в сторону JWT.

а циркуляция зависимостей решается выносом из цепочки в отдельную зависимость "двусторонней части", т.е. в твоём случае мидлвара,  роуты и пользователи должны быть отдельные модули.
(P.S. соответственно и точка входа в приложение - так же отделена всего )

...ну и встречный вопрос, реально думаешь сделать лучше чем в nest.js ?
почему роуты отдельно?
источник

N

Nikita in Node.js — русскоговорящее сообщество
они же принадлежат конкретно к юзерам
источник

N

Nikita in Node.js — русскоговорящее сообщество
и им нужны зависимости этого же модуля
источник

AZ

A Z in Node.js — русскоговорящее сообщество
Nikita
это не реальный проект, я конечно же мог подключить какой то typedi, tsyringe, inversify, или даже сам нест, но я хочу попробовать реализовать это без доп. зависимостей

в базу лезть ок, давайте не будем начинать очередной спор про jwt :D
Короче, сейчас в голову пришло

создаешь класс с массивом и методом init
class DI {
private controllers = new Map();

add(controller) {
this.controllers.set(controller, new controller())
}

get(controller){
return this.controllers.get(controller);
}
}
источник

AZ

A Z in Node.js — русскоговорящее сообщество
ну и собсна все на классах
источник

N

Nikita in Node.js — русскоговорящее сообщество
A Z
Короче, сейчас в голову пришло

создаешь класс с массивом и методом init
class DI {
private controllers = new Map();

add(controller) {
this.controllers.set(controller, new controller())
}

get(controller){
return this.controllers.get(controller);
}
}
типа service locator?
источник

N

Nikita in Node.js — русскоговорящее сообщество
вот мне некоторые идеи отсюда понравились: https://www.youtube.com/watch?v=CnailTcJV_U&ab_channel=DevMastery

он там зависиомсти просто прокидывает без использования либ по типу inversify
источник

AZ

A Z in Node.js — русскоговорящее сообщество
ну да
источник

N

Nikita in Node.js — русскоговорящее сообщество
A Z
ну да
а вызвать serviceLocator.get() кто будет?
источник

VS

Vlad Sobenko in Node.js — русскоговорящее сообщество
А откуда зависимость юзеров от роутов?
источник

N

Nikita in Node.js — русскоговорящее сообщество
просто если сам класс который зависит от того же контроллера, то это вроде антипаттерн
источник

N

Nikita in Node.js — русскоговорящее сообщество
Vlad Sobenko
А откуда зависимость юзеров от роутов?
можно плиз номер скрина чтобы я понял
источник

AZ

A Z in Node.js — русскоговорящее сообщество
те контроллеры которые будешь подключать, там в коструктом можешь контекст локатора передовать
источник

N

Nikita in Node.js — русскоговорящее сообщество
Vlad Sobenko
А откуда зависимость юзеров от роутов?
роуты юзеров зависят от самого модуля
источник

VS

Vlad Sobenko in Node.js — русскоговорящее сообщество
Nikita
можно плиз номер скрина чтобы я понял
Я только текст читал.
источник

G

Gleb in Node.js — русскоговорящее сообщество
Nikita
это не реальный проект, я конечно же мог подключить какой то typedi, tsyringe, inversify, или даже сам нест, но я хочу попробовать реализовать это без доп. зависимостей

в базу лезть ок, давайте не будем начинать очередной спор про jwt :D
возможно понимаю, тож эксперементирую, только с ECMA в целом, и думаю можно сделать лучше чем в nest, сегодня только возникла идея попробовать сделать nest.js на ELM, ну или как миниум на babel/ts с всякими фичами вроде
import * as controllers from './controllers'  
т.е. автоиморт из дерикторий и генерация свагера сразу, не описывая тонны декораторв...  в общем без декоратора в spring-like подходе ну никак же, не представляю как без них можно сделать удобный AuthGuard.

Х.З. как писать на чистом node.js, для меня это тож самое что писать на чистом js для браузера.
источник

N

Nikita in Node.js — русскоговорящее сообщество
Vlad Sobenko
Я только текст читал.
так сами юзеры от роутов не зависят
источник

N

Nikita in Node.js — русскоговорящее сообщество
наоборот, просто роуты указаны как бы в модуле юзеров
источник