邮递员:状态 404

问题描述 投票:0回答:1

我希望在客户填写预约表格后发送确认电子邮件。建议我使用“重新发送”。我在表单所在的位置开发了一个 React 扩展,并且还在后端使用 Express 开发了一个 POST 方法来发送电子邮件。

当我尝试在 Postman 中测试它时,问题出现了,结果出现 404 错误。我搜索了一些论坛,他们建议检查路由是否正确或者服务器是否正在运行(我已经验证了两者并且它们是正确的)。我想不出还有什么地方可能会出现错误。

下面是

server.js
方法所在的
POST
文件中的代码。
RESEND_FROM_EMAIL
RESEND_API_KEY
.env
文件中的环境变量(它们配置正确)。

const express = require('express');
const bodyParser = require('body-parser');
require('dotenv').config();
const axios = require('axios');

const app = express();
const PORT = process.env.PORT || 3003;

app.use(bodyParser.json()); 

app.post('/send-email', async (req, res) => {
  const { to, subject, html } = req.body;

  try {
    const response = await axios.post('https://api.resend.com/emails', {
      from: process.env.RESEND_FROM_EMAIL,
      to,
      subject,
      html,
    }, {
      headers: {
        'Authorization': `Bearer ${process.env.RESEND_API_KEY}`,
        'Content-Type': 'application/json'
      }
    });

    if (response.status === 200) {
      res.status(200).json({ message: 'Email sent successfully' });
    } else {
      res.status(response.status).json({ message: 'Failed to send email' });
    }
  } catch (error) {
    console.error('Error sending email:', error);
    res.status(500).json({ message: 'Internal server error' });
  }
});

app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

在 Postman 中,我使用

POST
方法,路线如下:
http://localhost:3003/send-email
,这是正文 (JSON):

{
    "to": "[email protected]",
    "subject": "Prueba Email",
    "html": "<h1>Esto es un Email</h1>"
}

我得到的结果是这样的:

状态:404未找到

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>Error</title>
</head>

<body>
    <pre>Cannot POST /send-email%0A</pre>
</body>

</html>

并且在测试结果中,五次不及格。

FAIL
Response has the required fields | AssertionError: expected a{ …(7) } to have property 'content-type'
express post axios postman resend.com
1个回答
0
投票

从响应消息的这部分来看:

/send-email%0A

URL 似乎有尾随空格。

检查Postman中的URL字段,看看它的末尾是否有一个点。

© www.soinside.com 2019 - 2024. All rights reserved.