NodeJS 如何使用“新”操作符与重发?[已关闭]

ax6ht2ek  于 2023-08-04  发布在  Node.js
关注(0)|答案(1)|浏览(91)

**已关闭。**此问题为not reproducible or was caused by typos。它目前不接受回答。

此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
20小时前关闭。
Improve this question
我在nodejs中的应用程序需要使用resend库发送事务性电子邮件。我用npm i resend安装了resend包,并做了下面的代码。

const resend = require("resend");
const instanceResend = new resend(process.env.KEY_RESEND);

const sendMail = async (from, to, subject, html) => {
  try {
    const data = await instanceResend.emails.send({
      from: from,
      to: to,
      subject: subject,
      html: html,
      text: text,
      headers: {
        "X-Entity-Ref-ID": process.env.KEY_RESEND,
      },
      tags: [
        {
          name: "category",
          value: "reset_password",
        },
      ],
    });
    console.log("Email data: ", data);
    return data;
  } catch (error) {
    console.error(error);
    return error;
  }
};

module.exports = sendMail;

字符串
在控制器中,我通过require调用文件sendEmail,并在forgotPassword函数中使用(用于发送密码恢复电子邮件)。看下面的代码。

const sendMail = require("../utils/sendMail");

 forgotPassword: async (req, res) => {
    const { email } = req.body;
    try {
      const user = await userModel.findOne({ email });
      if (!email || !user)
        return res
          .status(400)
          .json({ message: "Email not found or invalid", success: false });

      await sendMail(
        "from@gmail.com",
        "to@gmail.com",
        "subject@gmail.com",
        "<p>Hello</p",
        "TEXT",
        (err) => {
          if (err)
            return res.status(400).json({
              message: `Can not send forgot password email. ${err}`,
              success: false,
            });

          return res.status(200).json({
            message: "Forgot password email sent successfully: ",
            success: true,
          });
        }
      );
    } catch (error) {
      res.status(400).json({
        message: "Erro on forgot password, try again",
        error,
        success: false,
      });
      return error;
    }
  },


我期望电子邮件被发送,然而,我在vscode终端中得到以下错误:

const instanceResend = new resend(process.env.KEY_RESEND);
                        ^
TypeError: resend is not a constructor


新的运算符导致我的代码出错。如何解决?我是在使用node和JavaScript吗?
研究中心重新发送:here

kd3sttzy

kd3sttzy1#

根据我在https://www.npmjs.com/package/resend上看到的示例,您不需要正确地重新发送。您将获得整个重新发送库,其中您只需要获得Resend属性:
密码:

const resend = require("resend");
const instanceResend = new resend(process.env.KEY_RESEND);

字符串
您的代码应该如何基于所提供的示例:

const { Resend } = require("resend");
const instanceResend = new Resend(process.env.KEY_RESEND);


它与,相同,只是一个更长的形式:

const resend = require("resend");
const { Resend } = resend;

相关问题