【问题标题】:axios post api data sent gives empty object on console.log(req.body) on server side发送的 axios post api 数据在服务器端的 console.log(req.body) 上给出了空对象
【发布时间】:2020-11-06 02:51:17
【问题描述】:

我从 nodejs 开始,一直在尝试使用 axios 在 post api 中发送数据,但没有在服务器端获取数据,这是我的设置

客户

export default class App extends Component {
  componentDidMount() {
    const headers = {
      'Content-Type': 'application/json',
      'Authorization': 'JWT fefege...'
    }
    let data = { title: "abc", price: 20 }; // i am sending this data 
    axios
      .post("http://localhost:5000/add-product", data, {
        headers: headers,
      })
      .then((res) => console.log(res))
      .catch((err) => console.log(err));
  }
 
  render() {
    return (<div></div>);
  }
}

服务器端

const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const app = express();
let cors = require("cors");
const productRoutes = require("./routes/product");
app.use(cors());

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

产品 routes.js 文件

const express = require('express');

const productController = require('../controllers/product');

const router = express.Router();
router.post('/add-product', productController.addProduct);
module.exports=router

控制器文件

 exports.addProduct = (req, res, next) => {
console.log(req.body) //gives me {} everytime
 }

这里每次我从客户端发送一个对象我看到 {} 作为控制台

我的两个项目分别在 localhost:3000 和 5000 上运行

【问题讨论】:

    标签: javascript node.js reactjs axios


    【解决方案1】:

    添加

    app.use(bodyParser.json());
    

    【讨论】:

      猜你喜欢
      • 2017-09-10
      • 2019-03-18
      • 1970-01-01
      • 2020-02-07
      • 1970-01-01
      • 2019-02-09
      • 2020-12-24
      • 2020-03-22
      • 1970-01-01
      相关资源
      最近更新 更多