Saya mencoba menghubungkan reaksi ke server ekspres, tetapi ketika saya mencoba menerima data yang saya kirim dengan aplikasi reaksi, di req.body backend saya mendapatkan objek kosong, ini adalah kode reaksi saya:

export default function App() {
  let [text, setText] = useState("");
  const sendToServer = () => {
    axios
      .post("http://localhost:4000/test", {
        text: text
      })
      .then((res) => console.log(res))
      .catch((err) => console.log(err));
  };

  return (
    <div className="app">
      <input
        type="text"
        onChange={(e) => setText(e.target.value)}
      />
      <button onClick={sendToServer}>Send</button>
      <p>{text}</p>
    </div>
  );
}

Dan ini adalah backend saya:

const express = require("express");
const bodyParser = require("body-parser");
const app = express();
const cors = require('cors');

app.use(cors('http://localhost:3000'));

app.use(bodyParser.urlencoded({extended: false}));

app.use("/test", (req, res, next) => {
    console.log(req.body);

});

app.use((req, res, next) => {
  console.log(`server listening`);
});

app.listen(4000);

Saya menggunakan proxy di file package.json, tetapi masih tidak berfungsi. pada permintaan /test saya mendapatkan objek kosong.

0
Chrissisbeast 4 Januari 2021, 13:38

3 jawaban

Jawaban Terbaik

Tambahkan app.use(bodyParser.json({ limit: '10mb' }));

1
Jithin Zachariah 4 Januari 2021, 10:41

Ubah app.use menjadi app.post

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

Dokumen untuk referensi Perutean Ekspres

1
Azri 4 Januari 2021, 10:43

Mungkin Anda harus menambahkan res.data alih-alih res

0
sanaz 4 Januari 2021, 10:44