2017-09-25 91 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 
    }) 
}) 

而現在它工作正常。