异步函数不保存在数据库中

Async function not saving in database

此函数应该将购物车状态保存到我的数据库中。 好吧,我想我应该调用 await Axios .post 来将数据保存在我的数据库中,但我不知道该怎么做,我已经谷歌搜索了一个小时 这是在客户端,在后端 postman

下一切正常
  sendCart = async cart => {
        const config = {
          headers: {
            'Content-Type': 'application/json'
          }
        };

        try {
           const res = await axios.post('/api/purchase', cart, config)


        } catch (err) {
          console.error(err)
        }
      }

typeError: req.body.map is not a function
at router.post (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\routes\Purchase.js:7:24)
at Layer.handle [as handle_request] (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\layer.js:9





MongoDb Connected
TypeError: req.body.map is not a function
at router.post (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\routes\Purchase.js:7:24)
at Layer.handle [as handle_request] (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\layer.js:95:5)
at C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:281:22
at Function.process_params (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:335:12)
at next (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:275:10)
at Function.handle (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:174:3)
at router (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:47:12)
at Layer.handle [as handle_request] (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:317:13)
at C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:284:7
at Function.process_params (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:335:12)
at next (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:275:10)
at jsonParser (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\body-parser\lib\types\json.js:119:7)
TypeError: req.body.map is not a function
at router.post (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\routes\Purchase.js:7:24)
at Layer.handle [as handle_request] (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\layer.js:95:5)
at C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:281:22
at Function.process_params (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:335:12)
at next (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:275:10)
at Function.handle (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:174:3)
at router (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:47:12)
at Layer.handle [as handle_request] (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:317:13)
at C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:284:7
at Function.process_params (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:335:12)
at next (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\express\lib\router\index.js:275:10)
at jsonParser (C:\Users\Test\Documents\GitHub\Ecommerce-Store\VBackend\node_modules\body-parser\lib\types\json.js:119:7)

这是我的路线

const express = require("express");
const models = require("../models/Cart");
const router = express.Router();

router.post("/", (req, res) => {
  const newPurchase = new models.cartModel({
    products: req.body.map(element => {
      const { colorC, sizeC, date, title, transactionID, count } = element;
      return { colorC, sizeC, date, title, transactionID, count };
    })
  });

  newPurchase
    .save()
    .then(purchase => res.json(purchase))
    .catch(err => {
      console.error(err.message);
      res.status(500).send("Server Error");
    });
});

module.exports = router;

嘿,所以我实际上没有正确地通过函数传递购物车数据,所以一开始一切都是正确的。

sendCart = async cart => {
        const config = {
          headers: {
            'Content-Type': 'application/json'
          }
        }

        try {
          const res = await axios.post('/api/purchase',cart, config)
        } catch (err) {
          console.error(err)
        }
      }