Size: a a a

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

2020 January 17

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
ASergey Shakiel
в мидлваре подтягиваешь модель, делаешь проверку на автора - пропускаешь дальше или бросаешь исключение
не стоит выносить бизнесс логику в мидлвар
источник

AS

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

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
ASergey Shakiel
Там обычная проверка, бизнес логика в контроллере
эта проверка и есть частью бизнесс логики
источник

NA

Nikita Astakhov in Node.js — русскоговорящее сообщество
Добрый день

request/request объявил что уже не будет развиваться. Что теперь хорошего на замену? Axious это как будто для фронта, а что на бекенде из мощного есть?
источник

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
я бы вынес это отдельную функцию вида canUserModify(user, comment) и использовал как-то так
const user = await getUser(userId);
const comment = await getComment(commentId);
if(!canUserModify(user,comment)){
 throw new NotAuthorized('ERR_ACCESS');
}
// do whatewher you have to do
источник

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
Kirill Lesohorskyi
не стоит выносить бизнесс логику в мидлвар
ну и опять же, вы сходите в БД в мидлваре, а потом ещё раз в контроллере/сервисе
источник

IB

Igor Bond in Node.js — русскоговорящее сообщество
Alexander Tarasenko
Всем привет, подскажите, есть ли способ авторизацию как то вынести и переиспользоваать. Например проверка что юзер может удалить только свой пост свой коммент и тд. В контроллерах не охота все это повторять
а зачем проверять? удалять по условию - айди комента такой то автор такой то
источник

IB

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

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
Igor Bond
если будет попытка удалить коммент не со своим айди то ничего не произойдет
ну в идеале надо же вернуть сообщение про ошибку, что Unauthorized, все дела
источник

AS

ASergey Shakiel in Node.js — русскоговорящее сообщество
Kirill Lesohorskyi
я бы вынес это отдельную функцию вида canUserModify(user, comment) и использовал как-то так
const user = await getUser(userId);
const comment = await getComment(commentId);
if(!canUserModify(user,comment)){
 throw new NotAuthorized('ERR_ACCESS');
}
// do whatewher you have to do
вполне ок. Делал так на симфони и джанге) в ноде же я делаю по-быстрому через мидлварки. Вытянул комент, проверил, запихнул в стейт, в контролере и стейта вытянул комент, сделал че надо и вернул респонс )) (в итоге два запроса, селект и удаление)
источник

IB

Igor Bond in Node.js — русскоговорящее сообщество
Kirill Lesohorskyi
ну в идеале надо же вернуть сообщение про ошибку, что Unauthorized, все дела
просто на фронте не давать кнопку удалить если коммент не его
источник

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
Igor Bond
просто на фронте не давать кнопку удалить если коммент не его
ну апишка-то не только на фронт смотреть может
источник

IB

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

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
ASergey Shakiel
вполне ок. Делал так на симфони и джанге) в ноде же я делаю по-быстрому через мидлварки. Вытянул комент, проверил, запихнул в стейт, в контролере и стейта вытянул комент, сделал че надо и вернул респонс )) (в итоге два запроса, селект и удаление)
передавать подобный стейт через объект реквеста - не лучшая идея. Тогда ваша обработчик получает неявную зависимость в виде стоящего перед ним мидлвары. Потом кто-то мидлвару уберет/переместит/изменит и все сломается
источник

AT

Alexander Tarasenko in Node.js — русскоговорящее сообщество
У меня идёт проверка на токен, после проверка авторизации. В проверку авторизации я пока что передаю модель и поле для сравнения. И проверяю
источник

AT

Alexander Tarasenko in Node.js — русскоговорящее сообщество
Я не хочу в каждом контроллере делать однотипную проверку.
Да по автору и ид коммен а норм идея. Но как я пойму он не нашёл потому что не тот автор или он не нашнл потому что такого коммент нет впринципе
источник

А

Александр in Node.js — русскоговорящее сообщество
Nikita Astakhov
Добрый день

request/request объявил что уже не будет развиваться. Что теперь хорошего на замену? Axious это как будто для фронта, а что на бекенде из мощного есть?
axios и на бэке вполне ок
источник

NA

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

RK

Romka Kirillov in Node.js — русскоговорящее сообщество
приветы!

есть название для философии, стека или технологии (не могу подобрать термин) когда всё API сайта или сервиса работает через WS?
источник

AS

ASergey Shakiel in Node.js — русскоговорящее сообщество
Kirill Lesohorskyi
передавать подобный стейт через объект реквеста - не лучшая идея. Тогда ваша обработчик получает неявную зависимость в виде стоящего перед ним мидлвары. Потом кто-то мидлвару уберет/переместит/изменит и все сломается
+1, но так как я на проекте один с клиентом, нам обеим ок :) тем более что он не кодит
источник