ПОМЕСТИТЬ http://localhost:4000/api/update/user/10 404 (Не найден)

#mysql #node.js #reactjs

#mysql #node.js #reactjs

Вопрос:

Я пытался отредактировать форму в react, но возникла проблема с надписью «ПОМЕСТИТЬ http://localhost:4000/api/update/user/10 404 (не найден)». Вот мой внешний и внутренний код. Я использую react, node и MySQL.Кто-нибудь может найти проблему, я попытался установить cors, но это не решает мои проблемы.

EditUser —

 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, gender, email, address, number, website, id],
    (err, result) => {
      if (err) {
        res.send(err);
        console.log(err);
      } else {
        res.send(result);
        console.log(result);
      }
    }
  );
});
 

Комментарии:

1. Измените URL-адрес с «/ api/ update/ user: id» на «/ api/ update/ user/: id».

Ответ №1:

Вы забыли косую черту перед двоеточием :

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