Size: a a a

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

2020 May 02

AP

Andrii Plus in Node.js — русскоговорящее сообщество
тогда смело оборачивайте...
источник

AP

Andrii Plus in Node.js — русскоговорящее сообщество
"такое есть, но оно только синхронные ошибки отрабатывает. "
не только...
источник

V

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

V

Veli in Node.js — русскоговорящее сообщество
Andrii Plus
"такое есть, но оно только синхронные ошибки отрабатывает. "
не только...
ошибки промисов просто не выпадают туда
источник

V

Veli in Node.js — русскоговорящее сообщество
Veli
вот, в статье про эррорхендлинг в синхронных ошибках делают мидлвар, а на асинхронных уже трюкач на уровне каждого эндпоинта. Надеюсь, удастся избежать этого бойлерплейта
HOF, как вы и сказали, но опять же на уровне каждого метода
источник

V

Veli in Node.js — русскоговорящее сообщество
хм, в принципе оберну каждый метод в роутер на крайний случай, что уж там :)
источник

AP

Andrii Plus in Node.js — русскоговорящее сообщество
HOC
higher order component
источник

V

Veli in Node.js — русскоговорящее сообщество
я все равно роутер генерирую через LiveTemplates в IDEA автоматически
источник

V

Veli in Node.js — русскоговорящее сообщество
Andrii Plus
HOC
higher order component
а где тут компонент есть? Тут функция, возвращающая функцию => функция высшего порядка
источник

AP

Andrii Plus in Node.js — русскоговорящее сообщество
ну ... можно и так... компонент - ето не только то что пишут на  frontend-е )
источник

V

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

V

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

AP

Andrii Plus in Node.js — русскоговорящее сообщество
Andrii Plus
const handleError = controller => async (req, res, next) => {
 try {
   const rs = await controller(req);
   res.send(rs);
 } catch(err) {
   next(err);
 }
}
попробуйте все таки...
и вместо "wrap"..  "handleAction"
источник

L

LoganFrench in Node.js — русскоговорящее сообщество
как лучше реализовать очередь из запросов axios на промисах?
источник

V

Veli in Node.js — русскоговорящее сообщество
Andrii Plus
const handleError = controller => async (req, res, next) => {
 try {
   const rs = await controller(req);
   res.send(rs);
 } catch(err) {
   next(err);
 }
}
так контроллер - это класс. Опять же нечего эвейтить. На уровне вызова метода из контроллера, т.е. когда я маплю методы контроллера с эндпоинтами я это сделать могу
источник

AP

Andrii Plus in Node.js — русскоговорящее сообщество
попробуйте - если не получится накину POC для примера (но уже наверное завтра)
источник

V

Veli in Node.js — русскоговорящее сообщество
LoganFrench
как лучше реализовать очередь из запросов axios на промисах?
await promise1
await promise2
await promise3

или

promise1
.then(() => promise2)
.then(() => promise3)

это если последовательно.

Если параллельно, то Promise.all
источник

L

LoganFrench in Node.js — русскоговорящее сообщество
Veli
await promise1
await promise2
await promise3

или

promise1
.then(() => promise2)
.then(() => promise3)

это если последовательно.

Если параллельно, то Promise.all
ну я планирую инстансы axios кидать в массив и как вызывать из массива по одному и дожидаться ответа?
источник

V

Veli in Node.js — русскоговорящее сообщество
Andrii Plus
попробуйте - если не получится накину POC для примера (но уже наверное завтра)
так а что пробовать? На уровне метода я попробовал - работает. Но это 6 "оборачиваний" для каждого контроллера. А мне бы хотелось либо роутер уже обернуть (но он не возвращает промисы и никак с ними не связан), либо просто ошибки выбрасывать из промиса в общий поток ошибок
источник

AP

Andrii Plus in Node.js — русскоговорящее сообщество
for (let action of actions) {
 await axio(action)
}
источник