найти среднее значение ввода данных для базы данных - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь найти среднее значение для набора введенных данных. Информация должна быть следующей. Я получаю данные, записанные правильно, но не могу понять, как получить среднее значение.

/ 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...