0

重複の可能性:
Node.js の JSON 配列

私はnode.jsを初めて使用し、クライアント側からPOSTに応答するためにサーバー側のみに取り組んでいます。私がする必要があるのは、場所「/sort」でパラメーター「theArray」を使用して POST 要求が行われたときに、配列をソートしてすべての非文字列値を削除し、結果の値を JSON として返すことです。theArray パラメータは、文字列化された JSON 配列になります。ここでこのコードを試しました:

case '/sort':
        if (req.method == 'POST') {
            res.writeHead(200,{
                'Content-Type': 'application/json'
            });
            var fullArr = "";
                req.on('data', function(chunk) {
                    fullArr += chunk;
                    });
                req.on('end', function() {
                            var query = JSON.parse(fullArr);
                            var arr = "";
                            var par = query.theArray;
                            arr += par;
                    console.log(arr); 

                                function censor(key, value) {
                                    if (typeof value == "string") {
                                            return value;
                                        } 
                                        return undefined;
                                        }
                        var jsonString = JSON.stringify(arr, censor);
                        console.log(jsonString);
                });         
                    res.end();


        };

壊す;

しかし、それは同じものを返すだけですか?また、qs.parse を JSON.parse に置き換えてみましたが、未定義が返されましたか? 誰か助けてください!ありがとう

4

2 に答える 2

0

これをチェックして:

  1. チャンクによって受信されたデータを要求します。すべてのデータを最初のチャンクで受け取るという保証はまったくありません。' end 'イベントが発生した後にのみ、入力データを解析する必要があります。
  2. 打ち切り関数には、未定義の変数'i'があります。「鍵」という意味ですか?
于 2012-08-08T06:30:45.187 に答える
0

リクエストが終了するまで待ちます。次に、fullArrayを解析します。

var data = ""
req.on('data',function(chunk){data+=chunk})
req.on('end',function(){...parse here....})
于 2012-08-08T06:30:54.373 に答える