Showing
1 changed file
with
70 additions
and
75 deletions
... | @@ -4,93 +4,113 @@ var request = require('request'); | ... | @@ -4,93 +4,113 @@ var request = require('request'); |
4 | const convert = require('xml-js'); | 4 | const convert = require('xml-js'); |
5 | require('dotenv').config(); | 5 | require('dotenv').config(); |
6 | var urlencode = require('urlencode'); | 6 | var urlencode = require('urlencode'); |
7 | - | ||
8 | /* GET home page. */ | 7 | /* GET home page. */ |
9 | let GU_CODE; | 8 | let GU_CODE; |
10 | - | ||
11 | let ANIMAL_INFO_API_KEY = process.env.REACT_APP_API_KEY; | 9 | let ANIMAL_INFO_API_KEY = process.env.REACT_APP_API_KEY; |
12 | -let user_gu; | 10 | +let gu_select; |
13 | -let user_latitude; | ||
14 | -let user_longitude; | ||
15 | 11 | ||
16 | 12 | ||
17 | //동물병원 | 13 | //동물병원 |
18 | -router.post('/hospital', function (req, res) { | 14 | +// router.post('/hospital', function (req, res) { |
19 | - //gu 받아오기 | 15 | +// //gu 받아오기 |
16 | +// var body = req.body; | ||
17 | +// var gu_select = body.user_gu; | ||
18 | +// var menu = '동물병원'; | ||
19 | +// // encoding for url | ||
20 | +// var menu_encode = urlencode(menu); | ||
21 | +// var gu_select_encode = urlencode(gu_select); | ||
22 | +// //api | ||
23 | +// let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=200&pageNo=1&keyword=${menu_encode}&where=${gu_select_encode}`; | ||
24 | +// request(pet_url, function (err, response, body) { | ||
25 | +// if (err) { | ||
26 | +// console.log(`err => ${err}`) | ||
27 | +// } | ||
28 | +// else { | ||
29 | +// if (res.statusCode == 200) { | ||
30 | +// var hospital_list = []; | ||
31 | +// var titles = ''; | ||
32 | +// var result = convert.xml2json(body, { compact: true, spaces: 4 }); | ||
33 | +// var petJson = JSON.parse(result); | ||
34 | +// var itemList = petJson.response.body.items; | ||
35 | +// var numRows = petJson.response.body.totalCount._text; //개수 | ||
36 | +// if (numRows == 1) { | ||
37 | +// // state 정상인 것만 추리기 | ||
38 | +// if (itemList.item.state._text == '정상') { | ||
39 | +// appliance_list.push(itemList.item); | ||
40 | +// } | ||
41 | +// } | ||
42 | +// else if (numRows == 0) { } | ||
43 | +// else { | ||
44 | +// for (i = 0; i < numRows; i++) { | ||
45 | +// // state 정상인 것만 추리기 | ||
46 | +// if (itemList.item[i].state._text == '정상') { | ||
47 | +// appliance_list.push(itemList.item[i]); | ||
48 | +// } | ||
49 | +// } | ||
50 | +// } | ||
51 | + | ||
52 | +// //테스트용 console.log | ||
53 | +// for (i = 0; i < hospital_list.length; i++) { | ||
54 | +// titles = titles + hospital_list[i].title._text + '\n'; | ||
55 | +// } | ||
56 | +// if (titles == '') { console.log('nothing'); } | ||
57 | +// else { console.log(titles); } | ||
58 | +// } | ||
59 | +// } | ||
60 | +// res.render('result', { category: 'hospital', titles: titles, hospital_list: hospital_list }); | ||
61 | +// }) | ||
62 | +// }); | ||
63 | +// 사용자가 index 페이지에서 주소를 입력하고 넘어오면 | ||
64 | +router.post('/', function (req, res) { | ||
20 | var body = req.body; | 65 | var body = req.body; |
21 | - var gu_select = body.user_gu; | 66 | + gu_select = body.user_gu; |
22 | - var menu = '동물병원'; | 67 | + console.log(gu_select); |
23 | 68 | ||
24 | - // encoding for url | 69 | +}); |
25 | - var menu_encode = urlencode(menu); | ||
26 | - var gu_select_encode = urlencode(gu_select); | ||
27 | 70 | ||
71 | +router.get('/hospital', function (req, res) { | ||
28 | //api | 72 | //api |
73 | + var gu_select_encode = urlencode(gu_select); | ||
29 | 74 | ||
30 | - let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=200&pageNo=1&keyword=${menu_encode}&where=${gu_select_encode}`; | 75 | + let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=100&pageNo=1&keyword=%EB%8F%99%EB%AC%BC%EB%B3%91%EC%9B%90&where=${gu_select_encode}`; |
31 | - | ||
32 | request(pet_url, function (err, response, body) { | 76 | request(pet_url, function (err, response, body) { |
33 | if (err) { | 77 | if (err) { |
34 | console.log(`err => ${err}`) | 78 | console.log(`err => ${err}`) |
35 | } | 79 | } |
36 | else { | 80 | else { |
37 | if (res.statusCode == 200) { | 81 | if (res.statusCode == 200) { |
38 | - | 82 | + let hospital_list = []; |
39 | - var hospital_list = []; | ||
40 | - var titles = ''; | ||
41 | - | ||
42 | var result = convert.xml2json(body, { compact: true, spaces: 4 }); | 83 | var result = convert.xml2json(body, { compact: true, spaces: 4 }); |
43 | - var petJson = JSON.parse(result); | 84 | + var petJson = JSON.parse(result) |
44 | var itemList = petJson.response.body.items; | 85 | var itemList = petJson.response.body.items; |
45 | - var numRows = petJson.response.body.totalCount._text; //개수 | 86 | + var numRows = itemList.item.length; //개수 |
46 | - | 87 | + for (i = 0; i < numRows; i++) { |
47 | - if (numRows == 1) { | ||
48 | // state 정상인 것만 추리기 | 88 | // state 정상인 것만 추리기 |
49 | - if (itemList.item.state._text == '정상') { | 89 | + if (itemList.item[i].state._text == '정상') { |
50 | - appliance_list.push(itemList.item); | 90 | + hospital_list.push(itemList.item[i]); |
51 | } | 91 | } |
52 | } | 92 | } |
53 | - else if (numRows == 0) { } | ||
54 | - else { | ||
55 | - for (i = 0; i < numRows; i++) { | ||
56 | - // state 정상인 것만 추리기 | ||
57 | - if (itemList.item[i].state._text == '정상') { | ||
58 | - appliance_list.push(itemList.item[i]); | ||
59 | - } | ||
60 | - | ||
61 | - | ||
62 | - } | ||
63 | - } | ||
64 | - | ||
65 | //테스트용 console.log | 93 | //테스트용 console.log |
66 | - | 94 | + var titles = ''; |
67 | for (i = 0; i < hospital_list.length; i++) { | 95 | for (i = 0; i < hospital_list.length; i++) { |
68 | titles = titles + hospital_list[i].title._text + '\n'; | 96 | titles = titles + hospital_list[i].title._text + '\n'; |
69 | } | 97 | } |
70 | - | 98 | + console.log(titles); |
71 | - if (titles == '') { console.log('nothing'); } | 99 | + res.render('result', { category: 'hospital', titles: titles, hospital_list: hospital_list }); |
72 | - else { console.log(titles); } | ||
73 | } | 100 | } |
74 | } | 101 | } |
75 | - res.render('result', { category: 'hospital', titles: titles, hospital_list: hospital_list }); | ||
76 | }) | 102 | }) |
77 | }); | 103 | }); |
78 | 104 | ||
79 | -module.exports = router; | ||
80 | - | ||
81 | - | ||
82 | - | ||
83 | //동물약국 | 105 | //동물약국 |
84 | -router.post('/medicine', function (req, res) { | 106 | +router.get('/medicine', function (req, res) { |
85 | //gu 받아오기 | 107 | //gu 받아오기 |
86 | var body = req.body; | 108 | var body = req.body; |
87 | var gu_select = body.user_gu; | 109 | var gu_select = body.user_gu; |
88 | var menu = '동물약국'; | 110 | var menu = '동물약국'; |
89 | - | ||
90 | // encoding for url | 111 | // encoding for url |
91 | var menu_encode = urlencode(menu); | 112 | var menu_encode = urlencode(menu); |
92 | var gu_select_encode = urlencode(gu_select); | 113 | var gu_select_encode = urlencode(gu_select); |
93 | - | ||
94 | //api | 114 | //api |
95 | let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=200&pageNo=1&keyword=${menu_encode}&where=${gu_select_encode}`; | 115 | let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=200&pageNo=1&keyword=${menu_encode}&where=${gu_select_encode}`; |
96 | request(pet_url, function (err, response, body) { | 116 | request(pet_url, function (err, response, body) { |
... | @@ -101,7 +121,6 @@ router.post('/medicine', function (req, res) { | ... | @@ -101,7 +121,6 @@ router.post('/medicine', function (req, res) { |
101 | if (res.statusCode == 200) { | 121 | if (res.statusCode == 200) { |
102 | var medicine_list = []; | 122 | var medicine_list = []; |
103 | var titles = ''; | 123 | var titles = ''; |
104 | - | ||
105 | var result = convert.xml2json(body, { compact: true, spaces: 4 }); | 124 | var result = convert.xml2json(body, { compact: true, spaces: 4 }); |
106 | var petJson = JSON.parse(result); | 125 | var petJson = JSON.parse(result); |
107 | var itemList = petJson.response.body.items; | 126 | var itemList = petJson.response.body.items; |
... | @@ -134,18 +153,15 @@ router.post('/medicine', function (req, res) { | ... | @@ -134,18 +153,15 @@ router.post('/medicine', function (req, res) { |
134 | res.render('result', { category: 'medicine', titles: titles, medicine_list: medicine_list }); | 153 | res.render('result', { category: 'medicine', titles: titles, medicine_list: medicine_list }); |
135 | }) | 154 | }) |
136 | }); | 155 | }); |
137 | - | ||
138 | //의료기기 | 156 | //의료기기 |
139 | -router.post('/appliance', function (req, res) { | 157 | +router.get('/appliance', function (req, res) { |
140 | //gu 받아오기 | 158 | //gu 받아오기 |
141 | var body = req.body; | 159 | var body = req.body; |
142 | var gu_select = body.user_gu; | 160 | var gu_select = body.user_gu; |
143 | var menu = "동물의료기기 판매 및 임대업체"; | 161 | var menu = "동물의료기기 판매 및 임대업체"; |
144 | - | ||
145 | // encoding for url | 162 | // encoding for url |
146 | var menu_encode = urlencode(menu); | 163 | var menu_encode = urlencode(menu); |
147 | var gu_select_encode = urlencode(gu_select); | 164 | var gu_select_encode = urlencode(gu_select); |
148 | - | ||
149 | //api | 165 | //api |
150 | let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=100&pageNo=1&keyword=${menu_encode}&where=${gu_select_encode}`; | 166 | let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=100&pageNo=1&keyword=${menu_encode}&where=${gu_select_encode}`; |
151 | request(pet_url, function (err, response, body) { | 167 | request(pet_url, function (err, response, body) { |
... | @@ -156,12 +172,10 @@ router.post('/appliance', function (req, res) { | ... | @@ -156,12 +172,10 @@ router.post('/appliance', function (req, res) { |
156 | if (res.statusCode == 200) { | 172 | if (res.statusCode == 200) { |
157 | var appliance_list = []; | 173 | var appliance_list = []; |
158 | var titles = ''; | 174 | var titles = ''; |
159 | - | ||
160 | var result = convert.xml2json(body, { compact: true, spaces: 4 }); | 175 | var result = convert.xml2json(body, { compact: true, spaces: 4 }); |
161 | var petJson = JSON.parse(result); | 176 | var petJson = JSON.parse(result); |
162 | var itemList = petJson.response.body.items; | 177 | var itemList = petJson.response.body.items; |
163 | var numRows = petJson.response.body.totalCount._text; //개수 | 178 | var numRows = petJson.response.body.totalCount._text; //개수 |
164 | - | ||
165 | //------------------------------------------------- | 179 | //------------------------------------------------- |
166 | if (numRows == 1) { | 180 | if (numRows == 1) { |
167 | // state 정상인 것만 추리기 | 181 | // state 정상인 것만 추리기 |
... | @@ -192,21 +206,18 @@ router.post('/appliance', function (req, res) { | ... | @@ -192,21 +206,18 @@ router.post('/appliance', function (req, res) { |
192 | res.render('result', { category: 'appliance', titles: titles, appliance_list: appliance_list }); | 206 | res.render('result', { category: 'appliance', titles: titles, appliance_list: appliance_list }); |
193 | }) | 207 | }) |
194 | }); | 208 | }); |
195 | - | ||
196 | //체육시설 | 209 | //체육시설 |
197 | router.post('/park', function (req, res) { | 210 | router.post('/park', function (req, res) { |
198 | //gu 받아오기 | 211 | //gu 받아오기 |
199 | var body = req.body; | 212 | var body = req.body; |
200 | var gu_select = body.user_gu; | 213 | var gu_select = body.user_gu; |
201 | var menu = ["생활체육관", "학교체육시설", "풋살장", "축구장"]; | 214 | var menu = ["생활체육관", "학교체육시설", "풋살장", "축구장"]; |
202 | - | ||
203 | // encoding for url | 215 | // encoding for url |
204 | var menu_encode = []; | 216 | var menu_encode = []; |
205 | for (var j = 0; j < menu.length; j++) { | 217 | for (var j = 0; j < menu.length; j++) { |
206 | menu_encode[j] = urlencode(menu[j]); | 218 | menu_encode[j] = urlencode(menu[j]); |
207 | } | 219 | } |
208 | var gu_select_encode = urlencode(gu_select); | 220 | var gu_select_encode = urlencode(gu_select); |
209 | - | ||
210 | //api | 221 | //api |
211 | let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=100&pageNo=1&keyword=${menu_encode[0]}&where=${gu_select_encode}`; | 222 | let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=100&pageNo=1&keyword=${menu_encode[0]}&where=${gu_select_encode}`; |
212 | request(pet_url, function (err, response, body) { | 223 | request(pet_url, function (err, response, body) { |
... | @@ -217,12 +228,10 @@ router.post('/park', function (req, res) { | ... | @@ -217,12 +228,10 @@ router.post('/park', function (req, res) { |
217 | if (res.statusCode == 200) { | 228 | if (res.statusCode == 200) { |
218 | var appliance_list = []; | 229 | var appliance_list = []; |
219 | var titles = ''; | 230 | var titles = ''; |
220 | - | ||
221 | var result = convert.xml2json(body, { compact: true, spaces: 4 }); | 231 | var result = convert.xml2json(body, { compact: true, spaces: 4 }); |
222 | var petJson = JSON.parse(result) | 232 | var petJson = JSON.parse(result) |
223 | var itemList = petJson.response.body.items; | 233 | var itemList = petJson.response.body.items; |
224 | var numRows = petJson.response.body.totalCount._text; //개수 | 234 | var numRows = petJson.response.body.totalCount._text; //개수 |
225 | - | ||
226 | if (numRows == 1) { | 235 | if (numRows == 1) { |
227 | appliance_list.push(itemList.item); | 236 | appliance_list.push(itemList.item); |
228 | } | 237 | } |
... | @@ -234,7 +243,6 @@ router.post('/park', function (req, res) { | ... | @@ -234,7 +243,6 @@ router.post('/park', function (req, res) { |
234 | } | 243 | } |
235 | } | 244 | } |
236 | } | 245 | } |
237 | - | ||
238 | //api | 246 | //api |
239 | let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=100&pageNo=1&keyword=${menu_encode[1]}&where=${gu_select_encode}`; | 247 | let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=100&pageNo=1&keyword=${menu_encode[1]}&where=${gu_select_encode}`; |
240 | //let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=100&pageNo=1&keyword=%EC%83%9D%ED%99%9C%EC%B2%B4%EC%9C%A1%EA%B4%80&where=${gu_select_encode}`; | 248 | //let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=100&pageNo=1&keyword=%EC%83%9D%ED%99%9C%EC%B2%B4%EC%9C%A1%EA%B4%80&where=${gu_select_encode}`; |
... | @@ -244,13 +252,10 @@ router.post('/park', function (req, res) { | ... | @@ -244,13 +252,10 @@ router.post('/park', function (req, res) { |
244 | } | 252 | } |
245 | else { | 253 | else { |
246 | if (res.statusCode == 200) { | 254 | if (res.statusCode == 200) { |
247 | - | ||
248 | var result = convert.xml2json(body, { compact: true, spaces: 4 }); | 255 | var result = convert.xml2json(body, { compact: true, spaces: 4 }); |
249 | var petJson = JSON.parse(result) | 256 | var petJson = JSON.parse(result) |
250 | - | ||
251 | var itemList = petJson.response.body.items; | 257 | var itemList = petJson.response.body.items; |
252 | var numRows = petJson.response.body.totalCount._text; //개수 | 258 | var numRows = petJson.response.body.totalCount._text; //개수 |
253 | - | ||
254 | if (numRows == 1) { | 259 | if (numRows == 1) { |
255 | appliance_list.push(itemList.item); | 260 | appliance_list.push(itemList.item); |
256 | } | 261 | } |
... | @@ -262,7 +267,6 @@ router.post('/park', function (req, res) { | ... | @@ -262,7 +267,6 @@ router.post('/park', function (req, res) { |
262 | } | 267 | } |
263 | } | 268 | } |
264 | } | 269 | } |
265 | - | ||
266 | //api | 270 | //api |
267 | let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=100&pageNo=1&keyword=${menu_encode[2]}&where=${gu_select_encode}`; | 271 | let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=100&pageNo=1&keyword=${menu_encode[2]}&where=${gu_select_encode}`; |
268 | request(pet_url, function (err, response, body) { | 272 | request(pet_url, function (err, response, body) { |
... | @@ -273,10 +277,8 @@ router.post('/park', function (req, res) { | ... | @@ -273,10 +277,8 @@ router.post('/park', function (req, res) { |
273 | if (res.statusCode == 200) { | 277 | if (res.statusCode == 200) { |
274 | var result = convert.xml2json(body, { compact: true, spaces: 4 }); | 278 | var result = convert.xml2json(body, { compact: true, spaces: 4 }); |
275 | var petJson = JSON.parse(result) | 279 | var petJson = JSON.parse(result) |
276 | - | ||
277 | var itemList = petJson.response.body.items; | 280 | var itemList = petJson.response.body.items; |
278 | var numRows = petJson.response.body.totalCount._text; //개수 | 281 | var numRows = petJson.response.body.totalCount._text; //개수 |
279 | - | ||
280 | if (numRows == 1) { | 282 | if (numRows == 1) { |
281 | appliance_list.push(itemList.item); | 283 | appliance_list.push(itemList.item); |
282 | } | 284 | } |
... | @@ -288,7 +290,6 @@ router.post('/park', function (req, res) { | ... | @@ -288,7 +290,6 @@ router.post('/park', function (req, res) { |
288 | } | 290 | } |
289 | } | 291 | } |
290 | } | 292 | } |
291 | - | ||
292 | //api | 293 | //api |
293 | let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=100&pageNo=1&keyword=${menu_encode[3]}&where=${gu_select_encode}`; | 294 | let pet_url = `http://api.kcisa.kr/openapi/service/rest/convergence2019/getConver03?serviceKey=${ANIMAL_INFO_API_KEY}&numOfRows=100&pageNo=1&keyword=${menu_encode[3]}&where=${gu_select_encode}`; |
294 | request(pet_url, function (err, response, body) { | 295 | request(pet_url, function (err, response, body) { |
... | @@ -299,10 +300,8 @@ router.post('/park', function (req, res) { | ... | @@ -299,10 +300,8 @@ router.post('/park', function (req, res) { |
299 | if (res.statusCode == 200) { | 300 | if (res.statusCode == 200) { |
300 | var result = convert.xml2json(body, { compact: true, spaces: 4 }); | 301 | var result = convert.xml2json(body, { compact: true, spaces: 4 }); |
301 | var petJson = JSON.parse(result) | 302 | var petJson = JSON.parse(result) |
302 | - | ||
303 | var itemList = petJson.response.body.items; | 303 | var itemList = petJson.response.body.items; |
304 | var numRows = petJson.response.body.totalCount._text; //개수 | 304 | var numRows = petJson.response.body.totalCount._text; //개수 |
305 | - | ||
306 | if (numRows == 1) { | 305 | if (numRows == 1) { |
307 | appliance_list.push(itemList.item); | 306 | appliance_list.push(itemList.item); |
308 | } | 307 | } |
... | @@ -317,7 +316,6 @@ router.post('/park', function (req, res) { | ... | @@ -317,7 +316,6 @@ router.post('/park', function (req, res) { |
317 | for (i = 0; i < appliance_list.length; i++) { | 316 | for (i = 0; i < appliance_list.length; i++) { |
318 | titles = titles + appliance_list[i].title._text + '\n'; | 317 | titles = titles + appliance_list[i].title._text + '\n'; |
319 | } | 318 | } |
320 | - | ||
321 | if (titles == '') { console.log('nothing'); } | 319 | if (titles == '') { console.log('nothing'); } |
322 | else { console.log(titles); } | 320 | else { console.log(titles); } |
323 | } | 321 | } |
... | @@ -328,7 +326,4 @@ router.post('/park', function (req, res) { | ... | @@ -328,7 +326,4 @@ router.post('/park', function (req, res) { |
328 | }); | 326 | }); |
329 | }); | 327 | }); |
330 | }); | 328 | }); |
331 | - | 329 | +module.exports = router; |
332 | -module.exports = router; | ||
333 | - | ||
334 | - | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment