Задать вопрос
@Lyulekin

Почему сервер не ждет ответа от БД (монго) и идет до последнего обработчика и дает 404?

Сервер не ждет ответа от БД (монгоDB) в контроллере, но в него заходит - тк отрабатывает консоль (req.user), потом, добавляет в очередь задач запрос в бд, но не ждет сразу ответа и идет до последнего обработчика и отправляет клиенту ошибку 404, и только потом получает ответ от бд - консоль currUser, пытается снова отправить ВТОРОЙ ответ консоль 'tut4' и соответственно выдает "Cannot set headers after they are sent to the client", и падает в ошибку консоль 'tut5'

Ps на последнем скрине реализация через try/catch + async/await тоже не дала нужного результата

module.exports.getCurrentUser = async (req, res, next) => {
  try {
    console.log(req.user);
    const currentUser = await User.findById(req.user._id);
    console.log(`currUser: ${currentUser}`);
    
    if (!currentUser) {
      console.log('tut3');
      throw new NotFoundError(ERROR_NOTFOUND_MESSAGE_USER);
    } else {
      console.log('tut4');
      return res.status(httpConstants.HTTP_STATUS_OK).send(currentUser);
    }
  } catch (err) {
    console.log('tut5');
    if (err instanceof mongoose.Error.ValidationError) {
      return next(new BadRequest(ERROR_NOTFOUND_MESSAGE_USER));
    } else {
      return next(err);
    }
  }
};


Ссылка на Гх:
  • Вопрос задан
  • 222 просмотра
Подписаться 2 Средний 6 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы