0

我无法通过某种方法获取var data我发送的信息。POST这应该很容易(对吗?),但我显然遗漏了一些东西(无论是概念上还是设置上)。

在这个阶段,我只是想检查一下server side代码是否会将数据输出到控制台。该数组正在正确地进行字符串化,例如。['one','two','three'] 变成0=one&1=two&2=three 了,但我不能在服务器端把它拉出来。

我错过了什么?

客户端

var qs = require('querystring') 
  , http = require('http');

var some_array = ['one','two','three'];
var data = qs.stringify(some_array);

var options = { host: 'localhost',
                path: '/search',
                port: '3000',
                method: 'POST',
                headers: { 'content-length': Buffer.byteLength(data),
                            'Content-Type': 'application/json' } 
                  }


function go_post(data) {
    req = http.request(options, function(res) {
          // do something with response       
    });
    req.write(data);
    req.end();
  };


  go_post(data);

服务器端

 var connect = require('connect');
 var qs      = require('querystring');

 var server = connect.createServer();


server.use(function(req,res,next) {
if ( '/search' == req.url && req.method == 'POST' ) {   
            // quick check to see if data came through
    console.log('BODY IS ' + req.data);
    } else {
        next();
    };
 });    
4

1 回答 1

1

这些对象不可用,因为它们仍在“原始”请求中。您必须使用中间件connect().use(connect.bodyParser()),以便通过req.data.

于 2013-04-30T05:38:07.087 回答