Обработка ошибок с помощью async и await для узел JS маршруты и услуги


Я пытаюсь узнать правильный способ для обработки ошибок в узел JS. До сих пор его было что-то я не сосредоточил свое внимание и я считаю, что мое качество кода пострадало из-за этого. Ниже представлен типичный шаблон я использую сочетание маршрутов и услуг для получения с использованием данных Sequalize. У меня пытается реализовать обработку ошибок, но я предполагаю, что есть много места для улучшения. Может вы, ребята, пожалуйста, просмотрите мой код и помочь мне узнать лучший шаблон для этого сценария.

В мою службу у меня, очевидно, охватывает сценариев реагирования на группы нашли не нашли, что я не уверен в том, что другие очевидные вещи, которые могут пойти не так, что я еще не приходилось? Спасибо.

Маршрут:

router.route('/:id/groups')
  .get(async (req, res) => {
    let id = req.params.id;

    try {
      const groups = await service.getGroups(id);
      return res.json(groups);
    } catch(error) {
      Logger.error('User Route: get User Groups ', error);

      return res.json({
        success: false,
        error: error.message,
        code: 500
      });
    }
  });

Услуги:

async getGroups(id) {
  try {
    const user = await this.models.User.findById(id, {
      include: [{
        model: this.models.Group
      }]
    });

    if (user) {
      return {
        success: true,
        groups: user.Groups
      }
    } else {
      return {
        success: false,
        message: 'Groups not found'
      }
    }
  } catch(error) {
    Logger.error(
      'User Service: get groups - Error caught and thrown ',
      error.message
    );

    throw(error);
  }
}


94
0
задан 7 марта 2018 в 03:03 Источник Поделиться
Комментарии