JSON массив в Node.js
Я пытался выяснить это на прошлой неделе, и все, что я пробую, похоже, не работает.
Я должен создать веб-сервис на моем локальном ящике, который отвечает на запросы. Клиент (который я не написал) будет задавать моему сервису один вопрос за один раз, на который мой сервер должен ответить соответствующим ответом.
Итак, последнее, что я должен сделать, это:
When a POST request is made at location '/sort' with parameter 'theArray', sort the array removing all non-string values and return the resulting value as JSON.
theArray parameter will be a stringified JSON ArrayИз прохождения следа и ошибки я обнаружил, что предоставленные параметры:
{"theArray":"[[],\"d\",\"B\",{},\"b\",12,\"A\",\"c\"]"}
Я пробовал много разных вещей, чтобы попытаться заставить это работать. Но самое близкое, что я могу получить, это вернуть только то же самое или вообще ничего. Это код, который я использую, чтобы получить эти результаты:
case '/sort':
if (req.method == 'POST') {
res.writeHead(200,{
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
});
var fullArr = "";
req.on('data', function(chunk) {
fullArr += chunk;
});
req.on('end', function() {
var query = qs.parse(fullArr);
var strin = qs.stringify(query.theArray)
var jArr = JSON.parse(fullArr);
console.log(jArr); // Returns undefided:1
var par = query.theArray;
console.log(par); // returns [[],"d","B",{},"b",12,"A","c"]
function censor(key) {
if (typeof key == "string") {
return key;
}
return undefined;
}
var jsonString = JSON.stringify(par, censor);
console.log(jsonString); // returns ""
});
res.end();
};
break;
Просто чтобы уточнить, что мне нужно это вернуть["d","B","b","A","c"]
Так что, если кто-то может помочь мне с этим и, если возможно, ответит некоторым написанным кодом, который вроде бы настроен так, что он уже будет работать так, как у меня настроен мой код, это было бы здорово! Спасибо