2017-09-15 9 views
1

노드 {id: "abc123", text: "sometext"}을 노드 API에 게시하고 있습니다. action 호출 구성 요소에서 게시 : 나는 inputDatareq에서 읽을 수 있도록하려면캔트에서 읽은 게시물

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

:

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

노드입니다. 어떻게해야합니까? reqinputData을 읽을 수 있기를 바랍니다. 어떻게해야합니까?

+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 '가 전달되지 않습니다. 이제 노드에서 콘솔 로그를 얻지 못했습니다. 'data' 콘솔 로그로 다시 돌아가는 중입니다. 나는 '몸체'를 통과하는 것이 노드를 전혀 호출하지 않습니다. – Somename

+1

'inputData'를'JSON.stringify '해보고 본문으로 전달하십시오. – mkhanoyan

+0

그게 효과가 있습니다! 'JSON.stringify'가 트릭을했습니다. 왜'body'를 추가해야하고 다른'param'처럼 전달할 수 없습니까? – Somename