0

可能重复:
Node.js 中的 JSON 数组

我对 node.js 有点陌生,我只在服务器端工作以从客户端回答 POST。我需要做的是当使用参数'theArray'在位置'/sort'发出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();


        };

休息;

但它只是返回相同的东西?我也试过用 JSON.parse 替换 qs.parse 并且它只是返回 undefined?有人可以帮忙吗!谢谢

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 回答