当前位置: 首页 > 知识库问答 >
问题:

邮递http://localhost:3000/api/sendMail404(未找到)

金旺
2023-03-14

我正在使用http代理中间件将表单数据从React前端发送到Express server,
但是http代理中间件似乎不起作用
它应该代理localhost://5000
而是抛出一个错误:

邮递http://localhost:3000/api/sendMail404(未找到)。

前端代码:

import React, { Component } from "react";
import axios from "axios";

class EmailForm extends Component {
  state = {
    name: "",
    email: ""
  };

  handleSubmit = async e => {
    e.preventDefault();
    const data = {
      name: this.state.name,
      email: this.state.email
    };
    console.log(data);

    axios.post("/api/sendMail", data);
  };

  handleChange = e => {
    this.setState({
      [e.target.id]: e.target.value
    });
  };

  render() {
    return (
      <div className="container mt-3">
        <form onSubmit={this.handleSubmit}>
          <h4 className="grey-text text-darken-3">Send Email</h4>
          <div className="form-group">
            <label htmlFor="email">Name</label>
            <input
              className="form-control"
              type="text"
              id="name"
              onChange={this.handleChange}
            />
          </div>
          <div className="form-group">
            <label htmlFor="email">Email</label>
            <input
              className="form-control"
              type="email"
              id="email"
              onChange={this.handleChange}
            />
          </div>
          <div className="form-group">
            <button className="btn btn-danger">SendMeEmail</button>
          </div>
        </form>
      </div>
    );
  }
}

export default EmailForm;

设置代理。js:

const proxy = require("http-proxy-middleware");
module.exports = function(app) {
  app.use(proxy("/api", { target: "http://localhost:5000/" }));
};

服务器js:

app.post("/api/sendMail", (req, res) => {
  console.log(req.body);
});

共有1个答案

陆正奇
2023-03-14

将此行添加到package.json(反应项目)

"proxy": "http://localhost:5000"
 类似资料:
  • 问题内容: 我正在尝试将数据流式传输到浏览器。但是,我正在努力将其连接到浏览器。这是我的html: 这是我的app.js的相关部分: 我通过packages.json文件安装了socket.io 0.9.16: 有谁可以帮我离开这里吗?为什么找不到文件? 深入挖掘。为了测试套接字,我将其放在app.js中: 我得到错误: 问题答案: 你可以尝试一下: 我想,您将不得不实例化socket.io服务器

  • 所以我已经创建了一个注册身份验证的后端,在邮递员工作良好,我正在让用户到mondoDb以及,我们但是当我尝试创建实际的身份验证在localhost:3000/前端。在控制台它给我错误。如果有人能帮助我,这种错误会出现在哪里。 控制器 路线 注册表

  • 我怎么解决这个问题? http://localhost:3000/favicon.ico404(未找到) 服务器有此错误消息: 找不到404错误:在D:\nodetour\app中找不到。第二层的js:82:13。句柄[作为句柄\u请求](D:\nodetour\node\u modules\express\lib\router\layer.js:95:5)位于trim\u前缀(D:\nodeto

  • system.config.js: 当我在“app.module.ts”的imports列表中添加时,就会出现错误。

  • 在StackOverflow中有很多关于这个错误的问题我都看到了没有一个对我有效。我正在使用react和redux来获取一些产品。我的后端服务器节点运行在端口5000上,每当我尝试获取数据时,我都使用并发来同时启动两台服务器,它使用端口3000,我的前端正在运行。请谁来帮我解决这个问题

  • 我正在尝试通过Axios将数据从使用React创建的页面传递到由Express服务器管理的Mongo数据库。保存到数据库适用于用户,但对于帖子,我会收到这些错误消息: POST http: // 本地主机: 3001 / 创建帖子 404 (未找到) 未捕获(promise)错误:请求失败,状态代码404在createError(createError.js:16)在结算(settle.js:17