Size: a a a

NestJS — русскоязычное сообщество

2020 April 07

AK

Anton Kodwi in NestJS — русскоязычное сообщество
Это, я что, не могу глобально поставить гард стратегии на все контроллеры? Он какой-то особенный просто, без canActivate и не ставится в main.
источник

v

vitalii in NestJS — русскоязычное сообщество
ребят хелпоните плиз, не понимаю

сделаль
export class Recipe extends BaseEntity {
 @OneToMany(type => Ingredient, ingredient => ingredient.recipe)
 ingredients: Ingredient[];
}
export class Ingredient extends BaseEntity {
 @ManyToOne(type => Recipe, recipe => recipe.ingredients)
 recipe: Recipe;
}
теперь при создании Recipe хочу добавить по айдихе

export class RecipeRepository extends Repository<Recipe> {
const recipe = new Recipe();
   recipe.name = name;
   recipe.description = description;
   recipe.imgUrl = imgUrl;

   recipe.ingredients.push(Ingredient()) //// как тут найти чтоли каждый ингридиент ? но как, и если их будет дофига, посоветуйте как сдлеать лутше.

есть масив айдих просто, как эти айдихи связать ?
просто все ингридиенты цыклом искать а потом пушить ?
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
Konstantin Bubyakin
привет, а как вы traceId в логгер прокидываете?
Через CLS-hooked
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
поцаны выручайте, а то уже кукха ехать начинает, есть такой код, пишет данные в базу

const createdSession = await this.sessionModel.create({
 foo: bar
});

если он вызывается повторно, то в монге старый объект, перезаписывается новым с новым айдишником
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
причём если я вешаю console.log(createdSession). То там всё как надо, два разных объекта с разными айдишниками.
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
не пойму даже где проблему искать, потому что подобный код на проекте везде отрабатывает нормально
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
разобрался кажется, это монгус конченый

Second, Mongoose documents have change tracking. Under the hood, when you call doc.save(), Mongoose knows you set title and transforms your save() call into updateOne({ $set: { title } }). Try running Mongoose with debug mode to see what queries Mongoose executes.

причём в доке про это не написано
источник

V

Valentin in NestJS — русскоязычное сообщество
Всем привет. Подскажите есть хорошие варианты на ноде для решения моей проблемы. Или лучше пыха? Других вариантов нет.
Боль: Это много графики которую нужно показывать клиенту. Я хочу резать на лету картинки, их оптимизировать и раздавать в разных форматах. А так же кэшировать результат выполнения
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Valentin
Всем привет. Подскажите есть хорошие варианты на ноде для решения моей проблемы. Или лучше пыха? Других вариантов нет.
Боль: Это много графики которую нужно показывать клиенту. Я хочу резать на лету картинки, их оптимизировать и раздавать в разных форматах. А так же кэшировать результат выполнения
Что нравиться с чем знаком то и бери, для ноды есть sharp
источник

V

Valentin in NestJS — русскоязычное сообщество
Sviatoslav
Что нравиться с чем знаком то и бери, для ноды есть sharp
спасибо, посмотрю.
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Valentin
спасибо, посмотрю.
источник

R

Remite in NestJS — русскоязычное сообщество
Господа подскажите пожалуйста в точки зрения философии.
Есть сущность. например группа.
Есть владелец этой группы тот кто её создал.
Есть ендпоинт "удалить группу"
Соответственно удалить группу может только её владелец.
Внимание вопрос:
Где должна происходить проверка доступности этого ендпоинта?

В Гварде?
В контроллере?
В сервисе?

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

Кто что посоветует?
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
Remite
Господа подскажите пожалуйста в точки зрения философии.
Есть сущность. например группа.
Есть владелец этой группы тот кто её создал.
Есть ендпоинт "удалить группу"
Соответственно удалить группу может только её владелец.
Внимание вопрос:
Где должна происходить проверка доступности этого ендпоинта?

В Гварде?
В контроллере?
В сервисе?

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

Кто что посоветует?
мне кажется, что в сервисе правильнее. Кейс с автоудалением группы при отсутствии участников неправильный в принципе, удалять должен владелец.
источник

YS

Yaroslav Shelomentsev in NestJS — русскоязычное сообщество
а зачем делать запрос в бд на проверку при самой проверке? мы фетчим в middleware из базы все необходимое, и далее гвардами/декораторами чекаем права на методы контроллеров. Не уверен что это правильно, но решает в принципе любые задачи. Хранилище при этом res.local
источник

R

Remite in NestJS — русскоязычное сообщество
Anton Kodwi
мне кажется, что в сервисе правильнее. Кейс с автоудалением группы при отсутствии участников неправильный в принципе, удалять должен владелец.
ну чисто такой абстрактный пример просто, если например нужно будет зачистить неактивные группы, ну или любой другой притянутый за уши пример :)
источник

R

Remite in NestJS — русскоязычное сообщество
Yaroslav Shelomentsev
а зачем делать запрос в бд на проверку при самой проверке? мы фетчим в middleware из базы все необходимое, и далее гвардами/декораторами чекаем права на методы контроллеров. Не уверен что это правильно, но решает в принципе любые задачи. Хранилище при этом res.local
на каждый запрос тянуть всю инфу про юзера в том числе какими группами он владеет? ну мне кажется избыточно
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
у меня вот вопрос тоже: если базы нет в серваке субд, в ormconfig прописано имя бд, которая первой миграцией должна создаться, то почему typeorm cli падает по причине отсутствия базы? Автоматом не может ее создать что ли?
источник

R

Remite in NestJS — русскоязычное сообщество
Anton Kodwi
у меня вот вопрос тоже: если базы нет в серваке субд, в ormconfig прописано имя бд, которая первой миграцией должна создаться, то почему typeorm cli падает по причине отсутствия базы? Автоматом не может ее создать что ли?
да вроде как cli не может в создание баз, я когда пытался завести в итоге пришлось руками создавать
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
Remite
да вроде как cli не может в создание баз, я когда пытался завести в итоге пришлось руками создавать
блин, ну ок.
источник

YS

Yaroslav Shelomentsev in NestJS — русскоязычное сообщество
Remite
на каждый запрос тянуть всю инфу про юзера в том числе какими группами он владеет? ну мне кажется избыточно
хз, не буду давать дурные советы) лучше послушаю.
источник