微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Node.JS Express ERR_HTTP_HEADERS_SENT

如何解决Node.JS Express ERR_HTTP_HEADERS_SENT

我有一个快速服务器,我在其中使用 amazon SES 向用户发送电子邮件,告知他们的帐户已获批准。当用户注册帐户(正在查找)时,我还使用 SES 发送注册电子邮件。当我单击前端的按钮以“批准”该帐户时,它应该会向请求者发送一封电子邮件,说明他们的帐户已获批准并且他们可以登录。但是,当我点击按钮时,我得到一个

ERR_HTTP_HEADERS_SENT': 发送到服务器后无法设置标头 客户

这是我的服务器代码

exports.approvedPendingUser = (req,res) => {
  const { id,email,firstName,lastName } = req.body;
  User.updateOne(
    { _id: id },{
      $set: { accountApproved: true }
    }
  ).exec((err,user) => {
    if (!user) {
      return res.status(404).json({
        error: 'There is no user'
      });
    }
    return res.json(user);
  });

  const params = approveEmailParams(req,res);
  const sendEmailOnApproval = ses.sendEmail(params).promise();
  sendEmailOnApproval
    .then(data => {
      console.log('Email has been submitted to SES',data);
      return res.json({
        message: 'Email submitted to SES'
      });
    })
    .catch(error => {
      console.log('Ses email has not been sent',error);
      return res.json({
        error: 'Failed to send email'
      });
    });
};

approveEmailParams

引用

exports.approveEmailParams = (email,req,res) => {
  return {
    Source: process.env.EMAIL_FROM,Destination: {
      ToAddresses: [email]
    },ReplyToAddresses: [],Message: {
      Body: {
        Html: {
          Charset: 'UTF-8',Data: `
          <html>
            <h4>Congratulations,</h4>
            <p>Your MIKE account has been approved! Please use the following link to login:</P>
            <p>${process.env.LOGIN_URL}</p>
            <p>Thank you,<br /> SEARCH High-Tech Crime Training Services</p>
            <img src='/images/search_logo-1.jpg' alt='search logo' width='179' height='39'></img>
          </html>
          `
        }
      },Subject: {
        Charset: 'UTF-8',Data: 'Your MIKE Account Has Been Approved!'
      }
    }
  };
};

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。