如何在Node.js中获取发布数据?

时间:2013-08-05 06:20:41

标签: node.js

Server1.js

var data = querystring.stringify({
    imageName: reqImgName
  });

var options = {
              host: 'localhost',
              port: 4321,
              path: '/image',
              method: 'POST',
              headers: {
                    'Content-Type': 'application/x-www-form-urlencoded',
                    'Content-Length': data.length
                }
            };

server2.js

http.createServer(function(req, res){
  var reqMethod=req.method;
  var request = url.parse(req.url, true);
  var pathName = request.pathname;
  console.log('Path name is '+pathName);
  if (reqMethod=='POST' && pathName == '/image') {

   //here i need my server1 data..how can i get here.
   } 

}).listen(4321);

2 个答案:

答案 0 :(得分:5)

var postData = '';
req.on('data', function(datum) {
  postData += datum;
});

req.on('end', function() {
  //read postData
});

您没有收到任何帖子数据,因为您没有在server1.js中发送任何数据。尝试将一些数据写入请求正文

var req = http.request(options, function(res) {

});


req.write('data=somedata');

调试server2的另一种方法是让浏览器向/ image

发起POST请求

答案 1 :(得分:1)

将事件侦听器附加到data的{​​{1}}和end事件。 req会为您提供可以逐步处理的数据块,data会在您获得所有内容时告诉您。