我正在尝试查找输入的一组数据的平均值。该信息需要如下。我正在正确记录数据,但不知道如何获取平均值。
/ lab / status
此GET端点接收一个名为zip的查询参数,并返回在数据库中所有针对该特定邮政编码的所有主菜单中找到的平均airQuality以及200个状态码。必须使用.toFixed()方法将平均值截断以使用两个小数。该平均值应在没有任何其他信息的情况下发送,例如res.status(200).json(平均值); 例如:myserver:3000 / lab / status?zip = 85705将返回邮政编码85705中的平均airQuality 如果未指定邮政编码或该邮政编码无效,则必须返回以下错误消息以及400代码。 var errormsg = {“错误”:“需要邮政编码。”} 如果zip有效,但数据库中没有可用的数据,则必须返回以下错误消息以及400代码。 var errormsg = {“错误”:“数据库中不存在邮政编码。”} / lab / register
此POST端点将接受在正文中传递的两个值,即zip和airQuality。如果缺少任何参数,则必须返回以下错误消息以及400代码。
var errormsg = {“错误”:“需要zip和airQuality。”} 如果同时存在这两个参数,则必须在数据库中创建一个新条目并包含接收到的信息,并且必须返回以下消息以及201代码。
var msg = {“响应”:“已记录数据”。}
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();