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 に答える