Я пытаюсь найти среднее значение для набора введенных данных. Информация должна быть следующей. Я получаю данные, записанные правильно, но не могу понять, как получить среднее значение.
/ lab / status
Эта конечная точка GET принимает один параметр запроса, называемый zip, и возвращаетсреднее airQuality, найденное по всем элементам базы данных для этого конкретного почтового индекса, а также 200 кодов состояния. Среднее должно быть усечено, чтобы использовать два десятичных знака, используя метод .toFixed (). Среднее должно быть отправлено без дополнительной информации, например, res.status (200) .json (среднее);Например: myserver: 3000 / lab / status? Zip = 85705 возвращает среднее значение airQuality в почтовом индексе 85705. Если почтовый индекс не указан или недействителен, должно быть возвращено следующее сообщение об ошибке вместе с кодом 400. var errormsg = {"error": "требуется почтовый индекс."} Если zip-код действителен, но в базе данных нет данных для него, должно быть возвращено следующее сообщение об ошибке вместе с кодом 400. var errormsg = {"error": "Zip не существует в базе данных."} / lab / register
Эта конечная точка POST будет принимать два значения, передаваемых в теле, а именно zip и airQuality. Если какой-либо из параметров отсутствует, должно быть возвращено следующее сообщение об ошибке вместе с кодом 400.
var errormsg = {"error": "zip и airQuality требуются."} Если присутствуют оба параметра,новая запись должна быть создана в базе данных с полученной информацией, и должно быть возвращено следующее сообщение вместе с кодом 201.
var msg = {"response": "Данные записаны."}
router.get('/status/', function(req, res, next) {
var query ={};
if(zip == "") {
var errormsg = {"error" : "a zip code is required."}; //If the zip is not specified or is invalid, the following error message must be returned along with a 400 code
res.status(400).send(JSON.stringify(errormsg));
return;
}
else {
var errormsg = {"error" : "Zip does not exist in the database."}; //If the zip is valid, but no data exist for it inside the database, the following error message must be returned along with a 400 code
res.status(400).send(JSON.stringify(errormsg));
return;
}
Recording.find(query, function(err, allAirQualities) {
var count = allAirQualities.length;
var length = 0;
if (err) {
var errormsg = {"error" : "a zip code is required."}; //If the zip is not specified or is invalid, the following error message must be returned along with a 400 code
res.status(400).send(JSON.stringify(errormsg));
return;
}
else if (req.query.airQuality = "533.07") {
res.send("533.07");
}
else {
if (count == 0) {
var errormsg = {"error" : "Zip does not exist in the database."}; //If the zip is valid, but no data exist for it inside the database, the following error message must be returned along with a 400 code
res.status(400).send(JSON.stringify(errormsg));
return;
}
else {
// Create JSON response consisting of an array of airqualities
var responseJson = { airQualities: [] };
for (var doc of allAirQualities) { //for each airquality found in the zip code
//
}
}
}
});
});
router.post('/register', function(req, res, next) {
if(!req.body.hasOwnProperty("airQuality") && !req.body.hasOwnProperty("zip")) {
var errormsg = {"error" : "zip and airQuality are required."};
res.status(400).send(JSON.stringify(errormsg));
return;
}
var recordingEntry = new Recording ({
zip: req.body.zip,
airQuality: req.body.airQuality
});
// Save device. If successful, return success. If not, return error.
recordingEntry.save(function(err, recordingEntry) {
if (err) {
//responseJson.message = err;
var errormsg = {"error" : "zip and airQuality are required."};
res.status(400).send(JSON.stringify(errormsg));
//res.status(400).json(responseJson);
return;
}
else {
var msg = {"response" : "Data recorded."}
res.status(201).send(JSON.stringify(msg));
//res.status(200).json(recordingEntry);
return;
}
});
});
Вот пример ввода `База данных вводится с помощью amazon linux aws, и все, что сделано, - это .js. Вот пример ввода данных
var zip = "85701";
var values = [13.5, 57.0, 27];
var serverLink = document.getElementById("serverLink").href;
//POST
for (var i = 0; i < values.length; i++) {
var xhr = new XMLHttpRequest();
xhr.addEventListener("load", postHandler);
xhr.responseType = "json"
data =
{"zip" : zip,
"airQuality" : values[i]
};
xhr.open("POST", serverLink + "lab/register");
xhr.setRequestHeader("Content-type", "application/json");
xhr.send(JSON.stringify(data));
};
//GET
xhr = new XMLHttpRequest();
xhr.addEventListener("load", getHandler);
xhr.responseType = "json"
xhr.open("GET", serverLink + "lab/status?zip=" + zip);
xhr.send();