#javascript #node.js #reactjs #axios
#javascript #node.js #reactjs #axios
Вопрос:
Я начал с nodejs и пытался отправить данные в post api с помощью axios, но не получил их на стороне сервера вот моя настройка
КЛИЕНТ
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 соответственно
Ответ №1:
Добавить
app.use(bodyParser.json());