2013.08.13 15:41
var express = require('express'),
    app     = express(),
    port    = 8080;

app.configure(function(){
	app.use(express.bodyParser());
});

app.post('/', function(req, res){
	console.log(req.body.);
	res.send({ status: 'SUCCESS' });
})

app.listen(port);


위와 같은 코드로 샘플을 만들고 json을 post data로 넘겨 

서버에서 log로 찍어보려 했지만 아래와 같이 undefined로 나타나더라.. 아니 왜?



한참 삽질하면서 검색하던 중에  content-type이라는 녀석이 눈에 들어온다.. 

그렇다 node.js 의 json data를 서버에 요청할 경우 header에 Content-Type: application/json 을 담아 요청을 했어야 했다.



별것 아닌것 같지만.. 괜한 시간 뺏길 수가 있다.

Posted by CoolDragon

댓글을 달아 주세요

  1. 아둔한사 2014.05.29 20:04 신고  댓글주소  수정/삭제  댓글쓰기

    저도 비슷한 문제에 봉착중입니다.ㅠ...

    post맨에서 header값을 줘보기도 하고, html에서 메타데이터에서 헤더값을 application/json 으로 줘봤는데,
    그리고 서버에서 response.setHeader("Content-Type", "application/json"); 이렇게 해줘도 안되네요 ㅠ
    어디서 그렇게 줘야되는지 알 수 있을가요?

  2. 아둔한사 2014.05.29 21:04 신고  댓글주소  수정/삭제  댓글쓰기

    이 블로그에서 주로 힌트를 얻어서 답글 하나 달고 갑니다. (삽질하실 다른분들을 위해)

    여기 게시글에서 힌트를 얻었구요.
    http://rintiantta.blog.me/memo/40211421980

    요지는 멀티파티 를 추가해주면 되는데. 멀티파티가 라우터보다 먼저 app.use 하시면 그냥 되더군요. 그럼 즐코딩되시길
    var multiparty = require('connect-multiparty');
    var app = express();
    app.use(multiparty());

    • CoolDragon 2014.05.30 04:33 신고  댓글주소  수정/삭제

      간만에 들어왔는데 오늘 댓글이 달려 있네요
      별로 좋은 내용도 없는 제 블로그를 봐주시고
      답글과 추가 해설 감사합니다 :)