简体   繁体   中英

Send POST data with raw json with postman Express

I'm trying to log all the data and then return it as a response.

app.post('/data', (req, res) => {
  const data = req.body
  console.log(data)
  return res.json({
    data
  })
})

I'm sending data with Postman. In the Body tab I have "raw" selected and "JSON (application/json)". Headers tab is Content-Type application/json. I'm sending this:

    {
      "aa": 23
    }

When I click send button all I get is an empty object and the data variable is undefined in my console.log. How to fix it? I double checked everything. It should work, but it doesn't.

Alright, I found the solution.

"As body-parser module is used to parse the body and urls, it should be called before any call to 'req.body...'."

So I did this:

import bodyParser  from 'body-parser'

const app = express()
app.use(bodyParser.urlencoded())
app.use(bodyParser.json())

app.post('/data', (req, res) => {
  const data = req.body
  console.log(data)
  return res.json({
    data
  })
})

And now it works fine.

It seems like you're passing an invalid value to res.JSON(). Try:

return res.json(data);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM