Ошибка узла - использование свойства домена в MakeCallback устарело - PullRequest
0 голосов
/ 10 ноября 2019

Я получаю эту ошибку при выполнении запроса.

(узел: 3993) [DEP0097] Предупреждение об устаревании: Использование свойства домена в MakeCallback не рекомендуется. Вместо этого используйте вариант MakeCallback async_context или класс AsyncResource.

Вот код моего контроллера: AppointmentController Код очереди: Очередь Nodemailer: Mail

async delete(req, res) {
    const { appointment_id } = req.params;

    if (!appointment_id) {
      return res.status(404).json({
        error: "It's not possible to cancel an appointment with passing an id",
      });
    }

    const appointment = await Appointment.findByPk(appointment_id, {
      include: [
        {
          model: Restaurant,
          as: 'restaurant',
          attributes: ['id', 'name', 'provider_id'],
          include: [
            {
              model: Provider,
              foreignKey: 'provider_id',
              as: 'provider',
            },
          ],
        },
        {
          model: User,
          as: 'user',
          attributes: ['id', 'name', 'email'],
        },
      ],
    });

    if (!appointment) {
      return res.status(404).json({ error: 'Appointment not found' });
    }

    if (appointment && appointment.canceled_at !== null) {
      return res
        .status(420)
        .json({ error: 'This appointment was already canceled' });
    }

    // The user can cancel only his/her appointments - Verifying if the id is different
    if (appointment.user_id !== req.userId) {
      return res.status(401).json({
        error: "You don't have permission to cancel this appointment",
      });
    }

    // It's just allowed to cancel appointments with 1 hour of advance
    const dateWithSub = subHours(appointment.date, 1);

    if (isBefore(dateWithSub, new Date())) {
      return res.status(401).json({
        error: 'You can only cancel appointments with 1 hour of advance',
      });
    }

    // Changing the field canceled_at with the current date
    appointment.canceled_at = new Date();
    await appointment.save();

    const formatedDate = format(
      appointment.date,
      "'Day' dd 'of' MMMM',' H:mm 'Hours'"
    );

    await Queue.add(CancellationMail.key, { appointment, formatedDate });
    return res.json(appointment);
  }
}

Также я использую очередь для работы с электронной почтой. Дело в том, что я не знаю, связана ли эта ошибка с узлом или с одной из служб, которые я использую.

1 Ответ

1 голос
/ 10 ноября 2019

Предупреждение об устаревании происходит из-за использования модуля устаревшего домена .

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

Если это не помогло, то вам нужно выяснитьоткуда приходит предупреждение, и лучший способ сделать это состоит в том, чтобы просмотреть ваш код в отладчике и посмотреть, как выглядит трассировка стека при выдаче этого предупреждения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...