Express - `req.body` 总是空的

Express - `req.body` is always empty

我正在尝试构建一个完整的堆栈 (MERN) 应用程序。当我用 JSON 向我的 Express 服务器发送请求时,我总是看到我的 req.body 是空的。我在请求中看不到我的 JSON。

我试过只使用 app.use(bodyParser.json())app.use(bodyParser.urlencoded({ extended: true }));,但没有改变。

index.js

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true })); // for encoded bodies
console.log("App");
require("./schema/data");
require("./routes/home_routes")(app);
require("./routes/table_routes")(app);
require("./routes/utility_routes")(app);

utility_routes.js

const mongoose = require("mongoose");
const Data = mongoose.model("data");
module.exports = app => {
  app.get("/api/search_member", (req, res) => {
    console.log("Utility", req);
    console.log("Req Done");
    // const search = await Data.findById({ member_id: req.body.member_id });
    // console.log(search);
  });
};

request.body

[0]   body: {},
[0]   route:
[0]    Route {
[0]      path: '/api/search_member',
[0]      stack: [ [Layer] ],
[0]      methods: { get: true } } }

来自客户的请求

 onSearch = async value => {
      console.log(value);
      if (value) {
        const searchData = await axios.get("/api/search_member", { value });
        console.log(searchData);
      }
    };

这是我用来接受的json

var express = require('express');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var app = express();   
app.use( bodyParser.json() );       // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({     // to support URL-encoded bodies
    extended: true
 })); 

 app.use(express.json());
 app.use(cookieParser());

并在请求中这样设置 headers。

Content-Type : application/json

angular 中的 axios 和 http 库都适用于我的此设置。

You are making a GET request. GET request do not send body. To get req.body, make POST request to server.

Firstly:-

    const searchData = await axios.post("/api/search_member", { value });

And Secondly,

     app.POST("/api/search_member", async (req, res) => {
        console.log("Utility", req);
        console.log("Req Done");            
      });