2017-09-15 81 views
1

我將數據{id: "abc123", text: "sometext"}發佈到節點API。從組件發佈與action電話:不允許從節點讀取帖子

export function addTextToAPI(inputData) { 
    return(dispatch) => { 
     console.log(inputData), 
     dispatch(addText(inputData)) 
     fetch(myapi, { 
      headers: { 
       'Accept': 'application/json', 
       'Content-Type': 'application/json' 
      }, 
      method: 'POST', 
      data: inputData 
     }) 
     .then(res => res.json()) 
    } 
} 

的console.log(inputData)是{id: "abc123", text: "sometext"}

節點:

var express = require('express'); 
var bodyParser = require('body-parser'); 

var app = express(); 

app.use(bodyParser.json()); 

app.post('/addtest', (req, res) => { 

    console.log(req.body);  // <= returns blank object {} 

    console.log(req.body.data); // <= returns undefined 

    console.log(req.query);  // <= returns blank object {} 

    console.log("test added");  

}); 


app.listen(3000); 

我希望能夠讀取inputDatareq。我怎麼做?我希望能夠閱讀req中的inputData。我怎麼做?

+0

我也試過'JSON.stringify(inputdata)',但它不工作。 – Somename

+0

什麼是您的內容類型請求標頭? – Phix

+0

@Phix ..更新了問題中的'fetch'。請看一看。 – Somename

回答

3

要發佈數據,你需要傳遞一個body參數來獲取。

這應該工作:

export function addTextToAPI(inputData) { 
    return(dispatch) => { 
     console.log(inputData), 
     dispatch(addText(inputData)) 
     fetch(myapi, { 
      headers: { 
       'Accept': 'application/json', 
       'Content-Type': 'application/json' 
      }, 
      method: 'POST', 
      body: JSON.stringify(inputData) 
     }) 
     .then(res => res.json()) 
    } 
} 
+0

傳遞'body'不起作用。現在我甚至沒有從節點獲取任何'控制檯日誌'。改回''數據'控制檯日誌正在工作。我通過'body'的東西根本不叫節點。 – Somename

+1

嘗試'JSON.stringify' inputData'並將其作爲正文 – mkhanoyan

+0

傳遞! 'JSON.stringify'做了訣竅。爲什麼我需要添加'body'並且不能像其他'param'那樣傳遞它? – Somename