jimin

edit code

Showing 1 changed file with 177 additions and 169 deletions
1 -// api에서 데이터 불러오기 1 + // api에서 데이터 불러오기
2 + var xml2js = require('xml-js');
3 + var urlencode = require('urlencode');
4 + var xmlToJson;
5 +
6 + // 변수들
7 + var City; // 도시 이름
8 + var Feb_Dust_2018 =0 ;
9 + var Mar_Dust_2018 =0 ;
10 + var April_Dust_2018 =0 ;
11 + var May_Dust_2018 =0 ;
12 + var June_Dust_2018 =0 ;
13 + var Feb_Dust_2019 =0 ;
14 + var Mar_Dust_2019 =0 ;
15 + var April_Dust_2019 =0 ;
16 + var May_Dust_2019 =0 ;
17 + var June_Dust_2019 =0 ;
18 + var Feb_Dust_2020 =0 ;
19 + var Mar_Dust_2020 =0 ;
20 + var April_Dust_2020 =0 ;
21 + var May_Dust_2020 =0 ;
22 + var June_Dust_2020 =0 ;
23 + var check = false;
24 + var url;
25 + var Dust_Place //측정 도시
26 + const request = require('request');
27 + const Dust_URL = "http://openAPI.seoul.go.kr:8088/" //미세먼지 api주소_1
28 + const Dust_URL2 = "/xml/MonthlyAverageAirQuality/1/5/" //미세먼지 api주소_2
29 + const Dust_ServiceKey = "73754a53586a696d38345951716b6b" //api의 key값
2 30
3 -var xml2js = require('xml-js'); 31 +module.exports = function(app)
4 -var urlencode = require('urlencode');
5 -var xmlToJson;
6 -
7 -//var Dust_Month=0;
8 -
9 -var City;
10 -var Feb_Dust_2018 =0 ;
11 -var Mar_Dust_2018 =0 ;
12 -var April_Dust_2018 =0 ;
13 -var May_Dust_2018 =0 ;
14 -var June_Dust_2018 =0 ;
15 -var Feb_Dust_2019 =0 ;
16 -var Mar_Dust_2019 =0 ;
17 -var April_Dust_2019 =0 ;
18 -var May_Dust_2019 =0 ;
19 -var June_Dust_2019 =0 ;
20 -var Feb_Dust_2020 =0 ;
21 -var Mar_Dust_2020 =0 ;
22 -var April_Dust_2020 =0 ;
23 -var May_Dust_2020 =0 ;
24 -var June_Dust_2020 =0 ;
25 -const request = require('request');
26 -var url;
27 -const Dust_URL = "http://openAPI.seoul.go.kr:8088/" //미세먼지 api주소_1
28 -const Dust_URL2 = "/xml/MonthlyAverageAirQuality/1/5/" //미세먼지 api주소_2
29 -const Dust_ServiceKey = "73754a53586a696d38345951716b6b" //Dust url의 key값
30 -const Dust_Place = '/' + urlencode("강남구") //측정한 장소
31 -
32 -
33 -
34 -//2020년 2월~6월 미세먼지 평균
35 -function DelayNode_2020(item)
36 { 32 {
37 - return new Promise(function(resolve,reject){ 33 + app.get('/',function(req,res){
38 - setTimeout(function(){ 34 + res.render('City_login')
39 - //Dust_Place ='/'+ City 35 + });
40 - url = Dust_URL+Dust_ServiceKey+Dust_URL2+item+Dust_Place; 36 +
41 - //console.log(url) 37 + app.get('/city',function(req,res){
42 - request(url,function(error,res,body) { 38 + //2020년 2월~6월 미세먼지 평균
43 - if(error){ 39 + function DelayNode_2020(item)
44 - console.log('error=>${error}'); 40 + {
45 - } 41 + City = req.query.city;
46 - else{ 42 + return new Promise(function(resolve,reject){
47 - if(res.statusCode == 200) { 43 + setTimeout(function(){
48 - var result = body; 44 + Dust_Place ='/'+ urlencode(req.query.city)
49 - xmlToJson = xml2js.xml2json(result, {compact: true, spaces: 4}); 45 + url = Dust_URL+Dust_ServiceKey+Dust_URL2+item+Dust_Place;
50 - xmlToJson2 = JSON.parse(xmlToJson); 46 + request(url,function(error,res,body) {
51 - if(item == 202002){ 47 + if(error){
52 - Feb_Dust_2020 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"]) 48 + console.log('error=>${error}');
53 - } 49 + }
54 - else if(item == 202003){ 50 + else{
55 - Mar_Dust_2020 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"]) 51 + if(res.statusCode == 200) {
56 - } 52 + var result = body;
57 - else if(item == 202004){ 53 + xmlToJson = xml2js.xml2json(result, {compact: true, spaces: 4});
58 - April_Dust_2020 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"]) 54 + xmlToJson2 = JSON.parse(xmlToJson);
59 - } 55 + if(item == 202002){
60 - else if(item == 202005){ 56 + Feb_Dust_2020 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
61 - May_Dust_2020 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"]) 57 + }
62 - } 58 + else if(item == 202003){
63 - else if(item == 202006){ 59 + Mar_Dust_2020 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
64 - June_Dust_2020 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"]) 60 + }
61 + else if(item == 202004){
62 + April_Dust_2020 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
63 + }
64 + else if(item == 202005){
65 + May_Dust_2020 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
66 + }
67 + else if(item == 202006){
68 + June_Dust_2020 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
69 + }
65 } 70 }
66 } 71 }
67 - } 72 + });
68 - }); 73 + resolve();
69 - resolve(); 74 + })
70 - },500) 75 + })
71 - })
72 -}
73 -async function Dust_Month_2020(Dust_Month_2020){
74 - for(let i=0;i<Dust_Month_2020.length;i++)
75 - {
76 - await DelayNode_2020(Dust_Month_2020[i]);
77 } 76 }
78 -} 77 + async function Dust_Month_2020(Dust_Month_2020){
79 -Dust_Month_2020([202002,202003,202004,202005,202006]); 78 + for(let i=0;i<Dust_Month_2020.length;i++)
79 + {
80 + await DelayNode_2020(Dust_Month_2020[i]);
81 + }
82 + }
83 + Dust_Month_2020([202002,202003,202004,202005,202006]);
80 84
81 -//2019년 2월~6월 미세먼지 평균 85 + //2019년 2월~6월 미세먼지 평균
82 -function DelayNode_2019(item) 86 + function DelayNode_2019(item)
83 -{ 87 + {
84 - return new Promise(function(resolve,reject){ 88 + return new Promise(function(resolve,reject){
85 - setTimeout(function(){ 89 + setTimeout(function(){
86 - //Dust_Place ='/'+ City 90 + Dust_Place ='/'+ urlencode(req.query.city)
87 - url = Dust_URL+Dust_ServiceKey+Dust_URL2+item+Dust_Place; 91 + url = Dust_URL+Dust_ServiceKey+Dust_URL2+item+Dust_Place;
88 - request(url,function(error,res,body) { 92 + console.log(url)
89 - if(error){ 93 + request(url,function(error,res,body) {
90 - console.log('error=>${error}'); 94 + if(error){
91 - } 95 + console.log('error=>${error}');
92 - else{ 96 + }
93 - if(res.statusCode == 200) { 97 + else{
94 - var result = body; 98 + if(res.statusCode == 200) {
95 - xmlToJson = xml2js.xml2json(result, {compact: true, spaces: 4}); 99 + var result = body;
96 - xmlToJson2 = JSON.parse(xmlToJson); 100 + xmlToJson = xml2js.xml2json(result, {compact: true, spaces: 4});
97 - if(item == 201902){ 101 + xmlToJson2 = JSON.parse(xmlToJson);
98 - Feb_Dust_2019 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"]) 102 + if(item == 201902){
99 - } 103 + Feb_Dust_2019 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
100 - else if(item == 201903){ 104 + }
101 - Mar_Dust_2019 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"]) 105 + else if(item == 201903){
102 - } 106 + Mar_Dust_2019 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
103 - else if(item == 201904){ 107 + }
104 - April_Dust_2019 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"]) 108 + else if(item == 201904){
105 - } 109 + April_Dust_2019 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
106 - else if(item == 201905){ 110 + }
107 - May_Dust_2019 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"]) 111 + else if(item == 201905){
108 - } 112 + May_Dust_2019 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
109 - else if(item == 201906){ 113 + }
110 - June_Dust_2019 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"]) 114 + else if(item == 201906){
115 + June_Dust_2019 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
116 + }
111 } 117 }
112 } 118 }
113 - } 119 + });
114 - }); 120 + resolve();
115 - resolve(); 121 + })
116 - },500) 122 + })
117 - })
118 -}
119 -async function Dust_Month_2019(Dust_Month_2019){
120 - for(let i=0;i<Dust_Month_2019.length;i++)
121 - {
122 - await DelayNode_2019(Dust_Month_2019[i]);
123 } 123 }
124 -} 124 + async function Dust_Month_2019(Dust_Month_2019){
125 -Dust_Month_2019([201902,201903,201904,201905,201906]); 125 + for(let i=0;i<Dust_Month_2019.length;i++)
126 + {
127 + await DelayNode_2019(Dust_Month_2019[i]);
128 + }
129 + }
130 + Dust_Month_2019([201902,201903,201904,201905,201906]);
126 131
127 132
128 -//2018년 2월~6월 미세먼지 평균 133 + //2018년 2월~6월 미세먼지 평균
129 -function DelayNode_2018(item) 134 + function DelayNode_2018(item)
130 -{ 135 + {
131 - return new Promise(function(resolve,reject){ 136 + return new Promise(function(resolve,reject){
132 - setTimeout(function(){ 137 + setTimeout(function(){
133 - //Dust_Place ='/'+ City 138 + Dust_Place ='/'+ urlencode(req.query.city)
134 - url = Dust_URL+Dust_ServiceKey+Dust_URL2+item+Dust_Place; 139 + url = Dust_URL+Dust_ServiceKey+Dust_URL2+item+Dust_Place;
135 - request(url,function(error,res,body) { 140 + request(url,function(error,res,body) {
136 - if(error){ 141 + if(error){
137 - console.log('error=>${error}'); 142 + console.log('error=>${error}');
138 - } 143 + }
139 - else{ 144 + else{
140 - if(res.statusCode == 200) { 145 + if(res.statusCode == 200) {
141 - var result = body; 146 + var result = body;
142 - xmlToJson = xml2js.xml2json(result, {compact: true, spaces: 4}); 147 + xmlToJson = xml2js.xml2json(result, {compact: true, spaces: 4});
143 - xmlToJson2 = JSON.parse(xmlToJson); 148 + xmlToJson2 = JSON.parse(xmlToJson);
144 - if(item == 201802){ 149 + if(item == 201802){
145 - Feb_Dust_2018 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"]) 150 + Feb_Dust_2018 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
146 - } 151 + console.log(1)
147 - else if(item == 201803){ 152 + }
148 - Mar_Dust_2018 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"]) 153 + else if(item == 201803){
149 - } 154 + Mar_Dust_2018 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
150 - else if(item == 201804){ 155 + console.log(2)
151 - April_Dust_2018 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"]) 156 + }
152 - } 157 + else if(item == 201804){
153 - else if(item == 201805){ 158 + April_Dust_2018 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
154 - May_Dust_2018 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"]) 159 + console.log(3)
155 - } 160 + }
156 - else if(item == 201806){ 161 + else if(item == 201805){
157 - June_Dust_2018 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"]) 162 + May_Dust_2018 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
163 + console.log(4)
164 + }
165 + else if(item == 201806){
166 + June_Dust_2018 = parseInt(xmlToJson2["MonthlyAverageAirQuality"]["row"]["PM10"]["_text"])
167 + console.log(5)
168 + console.log("Setting Complete!!!")
169 + check = true;
170 + }
158 } 171 }
159 } 172 }
160 - } 173 + });
161 - }); 174 + resolve();
162 - resolve(); 175 + })
163 - },500) 176 + })
164 - })
165 -}
166 -async function Dust_Month_2018(Dust_Month_2018){
167 - for(let i=0;i<Dust_Month_2018.length;i++)
168 - {
169 - await DelayNode_2018(Dust_Month_2018[i]);
170 } 177 }
171 -} 178 + async function Dust_Month_2018(Dust_Month_2018){
172 -Dust_Month_2018([201802,201803,201804,201805,201806]); 179 + for(let i=0;i<Dust_Month_2018.length;i++)
180 + {
181 + await DelayNode_2018(Dust_Month_2018[i]);
182 + }
183 + }
184 + Dust_Month_2018([201802,201803,201804,201805,201806]);
173 185
174 -module.exports = function(app) 186 + //값을 다 받고난뒤 index.ejs에 값 보내주기
175 -{ 187 + if(check == true){
176 - app.get('/',function(req,res){
177 - res.render('City_login')
178 - City = req.query.city;
179 - console.log(City)
180 - });
181 - app.get('/city',function(req,res){
182 res.render('index',{ 188 res.render('index',{
183 Feb_Dust_2018, 189 Feb_Dust_2018,
184 Mar_Dust_2018, 190 Mar_Dust_2018,
...@@ -194,7 +200,9 @@ module.exports = function(app) ...@@ -194,7 +200,9 @@ module.exports = function(app)
194 Mar_Dust_2020, 200 Mar_Dust_2020,
195 April_Dust_2020, 201 April_Dust_2020,
196 May_Dust_2020, 202 May_Dust_2020,
197 - June_Dust_2020 203 + June_Dust_2020,
204 + City
198 }) 205 })
199 - });
200 -}
...\ No newline at end of file ...\ No newline at end of file
206 + }
207 + });
208 +}
......