2017-09-25 45 views
0

我想记录所有的数据,然后将其作为响应返回。发送POST数据与邮递员原始JSON快递

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

我使用邮递员发送数据。在Body选项卡中,我选择了“raw”和“JSON(application/json)”。标题选项卡是Content-Type application/json。我发送这个:

{ 
     "aa": 23 
    } 

当我点击发送按钮,我得到的是一个空的对象和数据变量未定义在我的console.log中。如何解决它?我加倍检查了一切。它应该可以工作,但它不会。

+4

您是否安装了中间件来处理发布请求数据,比如body-parser? – IzzyCooper

回答

1

这似乎是你传递一个无效的值res.JSON()。试试:

return res.json(data); 
+0

不一定,完全有效的JS属性速记 – James

+0

现在我在Body中没有任何东西,数据变量在console.log中仍然未定义。 –

1

好的,我找到了解决办法。

“由于body-parser模块用于解析body和url,所以在调用'req.body ...'之前应该调用它。

所以我这样做:

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 
    }) 
}) 

而现在它工作正常。