App.post req.body对象显示为空

时间:2018-11-07 06:11:27

标签: javascript json

我正在通过axios.post向我的服务器端点发送一个JSON对象,并且即使在axios内它可以正确地控制台,数据似乎也以空着控制台。

我的前端在端口3000和服务器端口3400上运行。

我的axios帖子:

  getRefundCalc(props) {
console.log('the props of the card, are they different for each card?' + JSON.stringify(props))

var headers = {
  'Content-Type': 'application/json'

}
axios.post(`http://localhost:3400/refundCalc`, props, { headers: headers })
  .then(res => {
    console.log('props within axios ++++++++++++++++++ 2' + JSON.stringify(props))

  })
}

控制台可以与'props'一起正常工作,我将在最后添加对象本身。 这是我的app.post:

app.post('/refundCalc', function (req, res) {
  console.log('response from client - get refund request ' + JSON.stringify(req.body))
  console.log('request from client - get refund request ' + req.body)
})

我的服务器设置如下:

let multer = require('multer');
const server = app.listen(port, () => console.log(`Example app listening on port ${port}!`))
var cors = require('cors')
app.use(cors())
const express = require('express');
const app = express();
const bodyParser = require('body-parser')

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

这是我从app.post端点得到的响应:

response from client - get refund request {}
request from client - get refund request [object Object]

在我的前端甚至服务器端都没有任何错误。如您所见,当我对请求进行字符串化时,它只是空的!

我要发送的数据采用以下格式:

{
"data": {
    "items": {
        "id": 1580841107519,
        "variant_id": 7051095179327,
        "title": "Fashion Summer Floral Print Dress",
        "name": "Fashion Summer Floral Print Dress - Black / L",
        "quantity": 1,
        "price": "16.76",
        "product_id": 561553145919
    },
    "imageLinks": {
        "product_id": 561553145919,
        "image_src": "https://cdn.shopify.com/s/files/1/0013/6688/4415/products/product-image-308841702.jpg?v=1521568884",
        "varrient_id": [7051095179327, 7051095212095, 7051095244863, 7051095277631]
    },
    "id": 0
},
"classes": {
    "card": "MediaCard-card-1",
    "media": "MediaCard-media-2"
}
}

我的预期结果是,我可以在服务器端点上管理我的数据,所以我知道我已成功接收并可以使用它,感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:2)

由于您以JSON格式发送主体,因此您需要在服务器端使用JSON解析器来解析主体。您将需要添加以下行:

app.use(bodyParser.json());