Size: a a a

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

2020 September 29

VB

Volodymyr Bortniak in Node.js — русскоговорящее сообщество
AntiPlayer
А есть где нибудь пример посмотреть базувую реализацию такого?
это я рассказал как я делал когда-то, может есть люди кто более прагматичней решал задачу
источник

a

ai in Node.js — русскоговорящее сообщество
Ребят подскажите... Не удаетс получить объект из базы mongo по id.
getTicById = async (req, res) => {
   await Tic.findOne({ _id: req.params.id }, (err, tic) => {
   if (err) {
   return res.status(400).json({ success: false, error: err })
}

if (!tic) {
   return res
   .status(404)
   .json({ success: false, error: not found })
}
return res.status(200).json({ success: true, data: tic })
   }).catch(err => console.log(err))
}
Id передается в формате String.
Что это может быть?
источник

VB

Volodymyr Bortniak in Node.js — русскоговорящее сообщество
ai
Ребят подскажите... Не удаетс получить объект из базы mongo по id.
getTicById = async (req, res) => {
   await Tic.findOne({ _id: req.params.id }, (err, tic) => {
   if (err) {
   return res.status(400).json({ success: false, error: err })
}

if (!tic) {
   return res
   .status(404)
   .json({ success: false, error: not found })
}
return res.status(200).json({ success: true, data: tic })
   }).catch(err => console.log(err))
}
Id передается в формате String.
Что это может быть?
а сервер как отвечает?
источник

a

ai in Node.js — русскоговорящее сообщество
Volodymyr Bortniak
а сервер как отвечает?
400(Bad request)
источник

VB

Volodymyr Bortniak in Node.js — русскоговорящее сообщество
ai
400(Bad request)
а в ошибке что?
источник

a

ai in Node.js — русскоговорящее сообщество
Volodymyr Bortniak
а в ошибке что?
В ощибке только 400(bad request) больше ничего
Не выводятся логи после вызова функции
   componentDidMount = async () => {
       const { id } = this.state
       console.log('ticket', id)
       const tic = await api.getTicById(id)
       console.log('tic', "compo")
       console.log('tic', tic.data.data)
источник

VB

Volodymyr Bortniak in Node.js — русскоговорящее сообщество
ai
В ощибке только 400(bad request) больше ничего
Не выводятся логи после вызова функции
   componentDidMount = async () => {
       const { id } = this.state
       console.log('ticket', id)
       const tic = await api.getTicById(id)
       console.log('tic', "compo")
       console.log('tic', tic.data.data)
ошибку распичатай
источник

VB

Volodymyr Bortniak in Node.js — русскоговорящее сообщество
там где обработка 400
источник

Р

Роман in Node.js — русскоговорящее сообщество
Volodymyr Bortniak
Любой асинхронный кол должен быть врапнут в try catch.
В зависимости от ошибки нужно генерировать код ответа. Нельзя отвечать 404 когда не найдено чего то и когда база упала. В вашем примере так и будет.
у меня каждый запрос отлавливает ошибку, и, если она есть, то отправляет ответ со статусом 500\40* соответственно. Вопрос скорее как "обернуть всё приложение в try\catch", чтобы если ошибка каста строки в число не роняла приложение
источник

VB

Volodymyr Bortniak in Node.js — русскоговорящее сообщество
Роман
у меня каждый запрос отлавливает ошибку, и, если она есть, то отправляет ответ со статусом 500\40* соответственно. Вопрос скорее как "обернуть всё приложение в try\catch", чтобы если ошибка каста строки в число не роняла приложение
например так:

router.post("/", authSrv.validateJWTToken, validatorSrv.exchange, errorHandle(exchangeCtrl.exchange));router.post("/", authSrv.validateJWTToken, validatorSrv.exchange, errorHandle(exchangeCtrl.exchange));
exchangeCtrl.exchange - это обработчик запроса, который передаеться аргументом у функции errorHandle

Ну и сама функция может быть до боли простой:
export const errorHandle = handler => async (req, res, next) => {
 try {
   await handler(req, res, next);
 } catch (e) {
   generateHttpError(res, e, next);
 }
};
источник

D

Dmitry in Node.js — русскоговорящее сообщество
проще фреймворк сменить чем городить такой изврат :)
источник

VB

Volodymyr Bortniak in Node.js — русскоговорящее сообщество
Dmitry
проще фреймворк сменить чем городить такой изврат :)
согласен
источник

VB

Volodymyr Bortniak in Node.js — русскоговорящее сообщество
я, например, так и сделал )
источник

D

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

VB

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

VB

Volodymyr Bortniak in Node.js — русскоговорящее сообщество
Volodymyr Bortniak
Вы не правы
Там не слегка!!!!
источник

D

Dmitry in Node.js — русскоговорящее сообщество
не люблю материться на людях :)
источник

VB

Volodymyr Bortniak in Node.js — русскоговорящее сообщество
)
источник

D

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

a

ai in Node.js — русскоговорящее сообщество
Volodymyr Bortniak
ошибку распичатай
Пояснений нет ... И не выводятся логи после вызова функции
источник