web-dev-qa-db-ja.com

Nodeエラー - MakeCallbackでのDomainプロパティの使用]が推奨されています

リクエストをしながらこのエラーが発生しました。

[。](ノード:3993)[DEP0097]脱走warning:MakeCallbackでドメインプロパティを使用することは推奨されていません。代わりにMakeCallbackまたはasyncResourceクラスのasync_contextバリアントを使用してください。

それは私のコントローラーのコードです: 予定コントローラー キューのコード: キュー 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つからのものであるかどうかわかりません。

8
Laura Beatris

廃止措置警告は, 非推奨ドメインモジュール を使用しています。

コードが直接使用していることがわかりませんので、必要なパッケージの1つがそれを使用していることを確信しています。まず、あなたがそれを使用していないことを確認するためにあなた自身のコードを通過し、それでもあなたの依存関係のすべてが最新であることを確認してください。

それでも修正されていない場合は、警告がやってくるところから、コードがデバッガ内でコードを踏み、この警告が発行されたときにスタックトレースが何であるかを確認するための最善の方法を理解する必要があります。

3