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 | +} | ... | ... |
-
Please register or login to post a comment