main.js 6.41 KB
// api에서 데이터 불러오기

var xml2js = require('xml-js');
var urlencode = require('urlencode');
var xmlToJson;

//var Dust_Month=0;

var City;
var Feb_Dust_2018 =0 ;
var Mar_Dust_2018 =0 ;
var April_Dust_2018 =0 ;
var May_Dust_2018 =0 ;
var June_Dust_2018 =0 ;
var Feb_Dust_2019 =0 ;
var Mar_Dust_2019 =0 ;
var April_Dust_2019 =0 ;
var May_Dust_2019 =0 ;
var June_Dust_2019 =0 ;
var Feb_Dust_2020 =0 ;
var Mar_Dust_2020 =0 ;
var April_Dust_2020 =0 ;
var May_Dust_2020 =0 ;
var June_Dust_2020 =0 ;
const request = require('request');
var url;
const Dust_URL = "http://openAPI.seoul.go.kr:8088/" //미세먼지 api주소_1
const Dust_URL2 = "/xml/MonthlyAverageAirQuality/1/5/" //미세먼지 api주소_2
const Dust_ServiceKey = "73754a53586a696d38345951716b6b" //Dust url의 key값
const Dust_Place = '/' + urlencode("강남구") //측정한 장소



//2020년 2월~6월 미세먼지 평균
function DelayNode_2020(item)
{  
  return new Promise(function(resolve,reject){
        setTimeout(function(){
        //Dust_Place ='/'+ City
        url = Dust_URL+Dust_ServiceKey+Dust_URL2+item+Dust_Place;
        //console.log(url)
        request(url,function(error,res,body) {
          if(error){
            console.log('error=>${error}');
          }
          else{
            if(res.statusCode == 200) {
              var result = body;
              xmlToJson = xml2js.xml2json(result, {compact: true, spaces: 4});
              xmlToJson2 = JSON.parse(xmlToJson);
                if(item == 202002){
                  Feb_Dust_2020 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
                }
                else if(item == 202003){
                  Mar_Dust_2020 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
                }
                else if(item == 202004){
                  April_Dust_2020 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
                }
                else if(item == 202005){
                  May_Dust_2020 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
                }
                else if(item == 202006){
                  June_Dust_2020 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
            }
          }
        }
      });
      resolve();        
    },500)
  })
}
async function Dust_Month_2020(Dust_Month_2020){
  for(let i=0;i<Dust_Month_2020.length;i++)
  {
    await DelayNode_2020(Dust_Month_2020[i]);
  }
}
Dust_Month_2020([202002,202003,202004,202005,202006]);

//2019년 2월~6월 미세먼지 평균
function DelayNode_2019(item)
{  
  return new Promise(function(resolve,reject){
        setTimeout(function(){
        //Dust_Place ='/'+ City
        url = Dust_URL+Dust_ServiceKey+Dust_URL2+item+Dust_Place;
        request(url,function(error,res,body) {
          if(error){
            console.log('error=>${error}');
          }
          else{
            if(res.statusCode == 200) {
              var result = body;
              xmlToJson = xml2js.xml2json(result, {compact: true, spaces: 4});
              xmlToJson2 = JSON.parse(xmlToJson);
                if(item == 201902){
                  Feb_Dust_2019 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
                }
                else if(item == 201903){
                  Mar_Dust_2019 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
                }
                else if(item == 201904){
                  April_Dust_2019 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
                }
                else if(item == 201905){
                  May_Dust_2019 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
                }
                else if(item == 201906){
                  June_Dust_2019 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
            }
          }
        }
      });
      resolve();        
    },500)
  })
}
async function Dust_Month_2019(Dust_Month_2019){
  for(let i=0;i<Dust_Month_2019.length;i++)
  {
    await DelayNode_2019(Dust_Month_2019[i]);
  }
}
Dust_Month_2019([201902,201903,201904,201905,201906]);


//2018년 2월~6월 미세먼지 평균
function DelayNode_2018(item)
{  
  return new Promise(function(resolve,reject){
        setTimeout(function(){
        //Dust_Place ='/'+ City
        url = Dust_URL+Dust_ServiceKey+Dust_URL2+item+Dust_Place;
        request(url,function(error,res,body) {
          if(error){
            console.log('error=>${error}');
          }
          else{
            if(res.statusCode == 200) {
              var result = body;
              xmlToJson = xml2js.xml2json(result, {compact: true, spaces: 4});
              xmlToJson2 = JSON.parse(xmlToJson);
                if(item == 201802){
                  Feb_Dust_2018 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
                }
                else if(item == 201803){
                  Mar_Dust_2018 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
                }
                else if(item == 201804){
                  April_Dust_2018 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
                }
                else if(item == 201805){
                  May_Dust_2018 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
                }
                else if(item == 201806){
                  June_Dust_2018 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
            }
          }
        }
      });
      resolve();        
    },500)
  })
}
async function Dust_Month_2018(Dust_Month_2018){
  for(let i=0;i<Dust_Month_2018.length;i++)
  {
    await DelayNode_2018(Dust_Month_2018[i]);
  }
}
Dust_Month_2018([201802,201803,201804,201805,201806]);

module.exports = function(app)
{  
  app.get('/',function(req,res){
    res.render('City_login')
    City = req.query.city;
    console.log(City)
  });
  app.get('/city',function(req,res){
    res.render('index',{
        Feb_Dust_2018,
        Mar_Dust_2018,
        April_Dust_2018,
        May_Dust_2018,
        June_Dust_2018,
        Feb_Dust_2019,
        Mar_Dust_2019,
        April_Dust_2019,
        May_Dust_2019,
        June_Dust_2019,
        Feb_Dust_2020,
        Mar_Dust_2020,
        April_Dust_2020,
        May_Dust_2020,
        June_Dust_2020
      })
   });
}