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

PUT http://localhost:4000/api/update/user/10 404未找到

如何解决PUT http://localhost:4000/api/update/user/10 404未找到

我试图在 react 中编辑表单,但出现问题,提示“PUT http://localhost:4000/api/update/user/10 404 (Not Found)”。这是我的前端和后端代码。 我正在使用 react、node 和 MysqL。谁能找到问题,我尝试安装 cors,但它没有解决我的问题。

编辑用户 -

const EditUser = () => {
  let history = useHistory();
  const { id } = useParams();
  const [user,setUser] = useState({
    name: "",gender: "",number: "",address: "",email: "",phone: "",website: "",});

  const { name,gender,email,address,number,website } = user;
  const onInputChange = (e) => {
    setUser({ ...user,[e.target.name]: e.target.value });
  };

  useEffect(() => {
    loadUser();
  },[]);

  const onSubmit = async (e) => {
    e.preventDefault();
    axios
      .put(`http://localhost:4000/api/update/user/${id}`,{
        name: name,email: email,address: address,number: number,website: website,gender: gender,})
      .catch(() => {});
    history.push("/");
  };

  const loadUser = async () => {
    const result = await axios.get(`http://localhost:4000/api/get/user/${id}`);
    setUser(result.data);
    console.log(result.data);
  };
  return (
    <div className="container">
      <div className="w-75 mx-auto shadow p-5">
        <h2 className="text-center mb-4">Edit A User</h2>
        <form onSubmit={(e) => onSubmit(e)}>
          <div className="form-group">
            <input
              type="text"
              className="form-control form-control-lg"
              placeholder="Enter Your Name"
              name="name"
              value={name}
              onChange={(e) => onInputChange(e)}
            />
          </div>
          <div class="form-check form-check-inline mb-3">
            <input
              class="form-check-input"
              type="radio"
              value="Male"
              name="gender"
              onChange={(e) => onInputChange(e)}
            />
            <label class="form-check-label">male</label>
          </div>
          <div class="form-check form-check-inline mb-3">
            <input
              class="form-check-input"
              type="radio"
              value="Female"
              name="gender"
              onChange={(e) => onInputChange(e)}
            />
            <label class="form-check-label">female</label>
          </div>
          <div className="form-group">
            <input
              type="text"
              className="form-control form-control-lg"
              placeholder="Enter Your Address"
              name="address"
              value={address}
              onChange={(e) => onInputChange(e)}
            />
          </div>
          <div className="form-group">
            <input
              type="email"
              className="form-control form-control-lg"
              placeholder="Enter Your E-mail Address"
              name="email"
              value={email}
              onChange={(e) => onInputChange(e)}
            />
          </div>
          <div className="form-group">
            <input
              type="number"
              className="form-control form-control-lg"
              placeholder="Enter Your Phone Number"
              name="number"
              value={number}
              onChange={(e) => onInputChange(e)}
            />
          </div>
          <div className="form-group">
            <input
              type="website"
              className="form-control form-control-lg"
              placeholder="Enter Your Website Name"
              name="website"
              value={website}
              onChange={(e) => onInputChange(e)}
            />
          </div>
          <button className="btn btn-warning btn-block">Update User</button>
        </form>
      </div>
    </div>
  );
};

export default EditUser;

这是编辑/更新查询的服务器端代码。 服务器代码 -

app.put("/api/update/user:id",(req,res) => {
  const id = req.params.id;
  const name = req.body.name;
  const gender = req.body.gender;
  const email = req.body.email;
  const address = req.body.address;
  const number = req.body.number;
  const website = req.body.website;
  const sqlUpdate =
    "UPDATE `emplyee_details` SET (name=?,gender=?,email=?,address=?,number=?,website=?) WHERE id=?";
  db.query(
    sqlUpdate,[name,website,id],(err,result) => {
      if (err) {
        res.send(err);
        console.log(err);
      } else {
        res.send(result);
        console.log(result);
      }
    }
  );
});

解决方法

你忘记了冒号前的斜线 :

app.put("/api/update/user/:id",(req,res) => {

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

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?