【发布时间】:2012-08-05 05:10:00
【问题描述】:
我对 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?有人可以帮忙吗!谢谢
【问题讨论】:
-
所以使用 qs 或 JSON 进行解析的区别取决于你,你发送什么到这个 POST ? Body urlencoded 还是 JSON 字符串?
-
我想我应该更具体一点。但我无法控制发送的内容。这有点像一个任务。我认为它是 urlencoded,因为当弄乱一些代码时,我得到了一个错误,并且 console.log 显示未定义和一些看起来被编码的代码(%2b%3 ...)。但是任何一个解析都没有剔除非字符串值?