Showing
5 changed files
with
280 additions
and
9 deletions
... | @@ -13,6 +13,8 @@ let user_gu; | ... | @@ -13,6 +13,8 @@ let user_gu; |
13 | let user_latitude; | 13 | let user_latitude; |
14 | let user_longitude; | 14 | let user_longitude; |
15 | 15 | ||
16 | + | ||
17 | +//동물병원 | ||
16 | router.post('/hospital', function (req, res) { | 18 | router.post('/hospital', function (req, res) { |
17 | //gu 받아오기 | 19 | //gu 받아오기 |
18 | var body = req.body; | 20 | var body = req.body; |
... | @@ -24,24 +26,36 @@ router.post('/hospital', function (req, res) { | ... | @@ -24,24 +26,36 @@ router.post('/hospital', function (req, res) { |
24 | var gu_select_encode = urlencode(gu_select); | 26 | var gu_select_encode = urlencode(gu_select); |
25 | 27 | ||
26 | //api | 28 | //api |
27 | - 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}`; | 29 | + |
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}`; | ||
28 | request(pet_url, function (err, response, body) { | 31 | request(pet_url, function (err, response, body) { |
29 | if (err) { | 32 | if (err) { |
30 | console.log(`err => ${err}`) | 33 | console.log(`err => ${err}`) |
31 | } | 34 | } |
32 | else { | 35 | else { |
33 | if (res.statusCode == 200) { | 36 | if (res.statusCode == 200) { |
34 | - var hospital_list = []; //얘를 전역으로 선언해서 중복이 발생했던 거였어요 ㅠ | 37 | + var hospital_list = []; |
35 | var titles = ''; | 38 | var titles = ''; |
36 | 39 | ||
37 | var result = convert.xml2json(body, { compact: true, spaces: 4 }); | 40 | var result = convert.xml2json(body, { compact: true, spaces: 4 }); |
38 | - var petJson = JSON.parse(result) | 41 | + var petJson = JSON.parse(result); |
39 | var itemList = petJson.response.body.items; | 42 | var itemList = petJson.response.body.items; |
40 | - var numRows = itemList.item.length; //개수 | 43 | + var numRows = petJson.response.body.totalCount._text; //개수 |
41 | - for (i = 0; i < numRows; i++) { | 44 | + |
45 | + if (numRows == 1) { | ||
42 | // state 정상인 것만 추리기 | 46 | // state 정상인 것만 추리기 |
43 | - if (itemList.item[i].state._text == '정상') { | 47 | + if (itemList.item.state._text == '정상') { |
44 | - hospital_list.push(itemList.item[i]); | 48 | + appliance_list.push(itemList.item); |
49 | + } | ||
50 | + } | ||
51 | + else if (numRows == 0) { } | ||
52 | + else { | ||
53 | + for (i = 0; i < numRows; i++) { | ||
54 | + // state 정상인 것만 추리기 | ||
55 | + if (itemList.item[i].state._text == '정상') { | ||
56 | + appliance_list.push(itemList.item[i]); | ||
57 | + } | ||
58 | + | ||
45 | } | 59 | } |
46 | } | 60 | } |
47 | 61 | ||
... | @@ -49,7 +63,9 @@ router.post('/hospital', function (req, res) { | ... | @@ -49,7 +63,9 @@ router.post('/hospital', function (req, res) { |
49 | for (i = 0; i < hospital_list.length; i++) { | 63 | for (i = 0; i < hospital_list.length; i++) { |
50 | titles = titles + hospital_list[i].title._text + '\n'; | 64 | titles = titles + hospital_list[i].title._text + '\n'; |
51 | } | 65 | } |
52 | - console.log(titles); | 66 | + |
67 | + if (titles == '') { console.log('nothing'); } | ||
68 | + else { console.log(titles); } | ||
53 | } | 69 | } |
54 | } | 70 | } |
55 | res.render('result', { category: 'hospital', titles: titles, hospital_list: hospital_list }); | 71 | res.render('result', { category: 'hospital', titles: titles, hospital_list: hospital_list }); |
... | @@ -59,3 +75,255 @@ router.post('/hospital', function (req, res) { | ... | @@ -59,3 +75,255 @@ router.post('/hospital', function (req, res) { |
59 | module.exports = router; | 75 | module.exports = router; |
60 | 76 | ||
61 | 77 | ||
78 | + | ||
79 | +//동물약국 | ||
80 | +router.post('/medicine', function (req, res) { | ||
81 | + //gu 받아오기 | ||
82 | + var body = req.body; | ||
83 | + var gu_select = body.user_gu; | ||
84 | + var menu = '동물약국'; | ||
85 | + | ||
86 | + // encoding for url | ||
87 | + var menu_encode = urlencode(menu); | ||
88 | + var gu_select_encode = urlencode(gu_select); | ||
89 | + | ||
90 | + //api | ||
91 | + 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}`; | ||
92 | + request(pet_url, function (err, response, body) { | ||
93 | + if (err) { | ||
94 | + console.log(`err => ${err}`) | ||
95 | + } | ||
96 | + else { | ||
97 | + if (res.statusCode == 200) { | ||
98 | + var medicine_list = []; | ||
99 | + var titles = ''; | ||
100 | + | ||
101 | + var result = convert.xml2json(body, { compact: true, spaces: 4 }); | ||
102 | + var petJson = JSON.parse(result); | ||
103 | + var itemList = petJson.response.body.items; | ||
104 | + var numRows = petJson.response.body.totalCount._text; //개수 | ||
105 | + | ||
106 | + if (numRows == 1) { | ||
107 | + // state 정상인 것만 추리기 | ||
108 | + if (itemList.item.state._text == '정상') { | ||
109 | + appliance_list.push(itemList.item); | ||
110 | + } | ||
111 | + } | ||
112 | + else if (numRows == 0) { } | ||
113 | + else { | ||
114 | + for (i = 0; i < numRows; i++) { | ||
115 | + // state 정상인 것만 추리기 | ||
116 | + if (itemList.item[i].state._text == '정상') { | ||
117 | + appliance_list.push(itemList.item[i]); | ||
118 | + } | ||
119 | + } | ||
120 | + } | ||
121 | + | ||
122 | + //테스트용 console.log | ||
123 | + for (i = 0; i < medicine_list.length; i++) { | ||
124 | + titles = titles + medicine_list[i].title._text + '\n'; | ||
125 | + } | ||
126 | + if (titles == '') { console.log('nothing'); } | ||
127 | + else { console.log(titles); } | ||
128 | + } | ||
129 | + } | ||
130 | + res.render('result', { category: 'medicine', titles: titles, medicine_list: medicine_list }); | ||
131 | + }) | ||
132 | +}); | ||
133 | + | ||
134 | +//의료기기 | ||
135 | +router.post('/appliance', function (req, res) { | ||
136 | + //gu 받아오기 | ||
137 | + var body = req.body; | ||
138 | + var gu_select = body.user_gu; | ||
139 | + var menu = "동물의료기기 판매 및 임대업체"; | ||
140 | + | ||
141 | + // encoding for url | ||
142 | + var menu_encode = urlencode(menu); | ||
143 | + var gu_select_encode = urlencode(gu_select); | ||
144 | + | ||
145 | + //api | ||
146 | + 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}`; | ||
147 | + request(pet_url, function (err, response, body) { | ||
148 | + if (err) { | ||
149 | + console.log(`err => ${err}`) | ||
150 | + } | ||
151 | + else { | ||
152 | + if (res.statusCode == 200) { | ||
153 | + var appliance_list = []; | ||
154 | + var titles = ''; | ||
155 | + | ||
156 | + var result = convert.xml2json(body, { compact: true, spaces: 4 }); | ||
157 | + var petJson = JSON.parse(result); | ||
158 | + var itemList = petJson.response.body.items; | ||
159 | + var numRows = petJson.response.body.totalCount._text; //개수 | ||
160 | + | ||
161 | + //------------------------------------------------- | ||
162 | + if (numRows == 1) { | ||
163 | + // state 정상인 것만 추리기 | ||
164 | + if (itemList.item.state._text == '정상') { | ||
165 | + appliance_list.push(itemList.item); | ||
166 | + } | ||
167 | + } | ||
168 | + else if (numRows == 0) { } | ||
169 | + else { | ||
170 | + for (i = 0; i < numRows; i++) { | ||
171 | + // state 정상인 것만 추리기 | ||
172 | + if (itemList.item[i].state._text == '정상') { | ||
173 | + appliance_list.push(itemList.item[i]); | ||
174 | + } | ||
175 | + } | ||
176 | + } | ||
177 | + //----------------------------------------------- | ||
178 | + | ||
179 | + //테스트용 console.log | ||
180 | + for (i = 0; i < appliance_list.length; i++) { | ||
181 | + titles = titles + appliance_list[i].title._text + '\n'; | ||
182 | + } | ||
183 | + if (titles == '') { console.log('nothing'); } | ||
184 | + else { console.log(titles); } | ||
185 | + | ||
186 | + } | ||
187 | + } | ||
188 | + res.render('result', { category: 'appliance', titles: titles, appliance_list: appliance_list }); | ||
189 | + }) | ||
190 | +}); | ||
191 | + | ||
192 | +//체육시설 | ||
193 | +router.post('/park', function (req, res) { | ||
194 | + //gu 받아오기 | ||
195 | + var body = req.body; | ||
196 | + var gu_select = body.user_gu; | ||
197 | + var menu = ["생활체육관", "학교체육시설", "풋살장", "축구장"]; | ||
198 | + | ||
199 | + // encoding for url | ||
200 | + var menu_encode = []; | ||
201 | + for (var j = 0; j < menu.length; j++) { | ||
202 | + menu_encode[j] = urlencode(menu[j]); | ||
203 | + } | ||
204 | + var gu_select_encode = urlencode(gu_select); | ||
205 | + | ||
206 | + //api | ||
207 | + 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}`; | ||
208 | + request(pet_url, function (err, response, body) { | ||
209 | + if (err) { | ||
210 | + console.log(`err => ${err}`) | ||
211 | + } | ||
212 | + else { | ||
213 | + if (res.statusCode == 200) { | ||
214 | + var appliance_list = []; | ||
215 | + var titles = ''; | ||
216 | + | ||
217 | + var result = convert.xml2json(body, { compact: true, spaces: 4 }); | ||
218 | + var petJson = JSON.parse(result) | ||
219 | + var itemList = petJson.response.body.items; | ||
220 | + var numRows = petJson.response.body.totalCount._text; //개수 | ||
221 | + | ||
222 | + if (numRows == 1) { | ||
223 | + appliance_list.push(itemList.item); | ||
224 | + } | ||
225 | + else if (numRows == 0) { } | ||
226 | + else { | ||
227 | + for (i = 0; i < numRows; i++) { | ||
228 | + appliance_list.push(itemList.item[i]); | ||
229 | + } | ||
230 | + } | ||
231 | + } | ||
232 | + } | ||
233 | + | ||
234 | + //api | ||
235 | + 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}`; | ||
236 | + //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}`; | ||
237 | + request(pet_url, function (err, response, body) { | ||
238 | + if (err) { | ||
239 | + console.log(`err => ${err}`) | ||
240 | + } | ||
241 | + else { | ||
242 | + if (res.statusCode == 200) { | ||
243 | + | ||
244 | + var result = convert.xml2json(body, { compact: true, spaces: 4 }); | ||
245 | + var petJson = JSON.parse(result) | ||
246 | + | ||
247 | + var itemList = petJson.response.body.items; | ||
248 | + var numRows = petJson.response.body.totalCount._text; //개수 | ||
249 | + | ||
250 | + if (numRows == 1) { | ||
251 | + appliance_list.push(itemList.item); | ||
252 | + } | ||
253 | + else if (numRows == 0) { } | ||
254 | + else { | ||
255 | + for (i = 0; i < numRows; i++) { | ||
256 | + appliance_list.push(itemList.item[i]); | ||
257 | + } | ||
258 | + } | ||
259 | + } | ||
260 | + } | ||
261 | + | ||
262 | + //api | ||
263 | + 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}`; | ||
264 | + request(pet_url, function (err, response, body) { | ||
265 | + if (err) { | ||
266 | + console.log(`err => ${err}`) | ||
267 | + } | ||
268 | + else { | ||
269 | + if (res.statusCode == 200) { | ||
270 | + var result = convert.xml2json(body, { compact: true, spaces: 4 }); | ||
271 | + var petJson = JSON.parse(result) | ||
272 | + | ||
273 | + var itemList = petJson.response.body.items; | ||
274 | + var numRows = petJson.response.body.totalCount._text; //개수 | ||
275 | + | ||
276 | + if (numRows == 1) { | ||
277 | + appliance_list.push(itemList.item); | ||
278 | + } | ||
279 | + else if (numRows == 0) { } | ||
280 | + else { | ||
281 | + for (i = 0; i < numRows; i++) { | ||
282 | + appliance_list.push(itemList.item[i]); | ||
283 | + } | ||
284 | + } | ||
285 | + } | ||
286 | + } | ||
287 | + | ||
288 | + //api | ||
289 | + 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}`; | ||
290 | + request(pet_url, function (err, response, body) { | ||
291 | + if (err) { | ||
292 | + console.log(`err => ${err}`) | ||
293 | + } | ||
294 | + else { | ||
295 | + if (res.statusCode == 200) { | ||
296 | + var result = convert.xml2json(body, { compact: true, spaces: 4 }); | ||
297 | + var petJson = JSON.parse(result) | ||
298 | + | ||
299 | + var itemList = petJson.response.body.items; | ||
300 | + var numRows = petJson.response.body.totalCount._text; //개수 | ||
301 | + | ||
302 | + if (numRows == 1) { | ||
303 | + appliance_list.push(itemList.item); | ||
304 | + } | ||
305 | + else if (numRows == 0) { } | ||
306 | + else { | ||
307 | + for (i = 0; i < numRows; i++) { | ||
308 | + appliance_list.push(itemList.item[i]); | ||
309 | + } | ||
310 | + } | ||
311 | + | ||
312 | + //테스트용 console.log | ||
313 | + for (i = 0; i < appliance_list.length; i++) { | ||
314 | + titles = titles + appliance_list[i].title._text + '\n'; | ||
315 | + } | ||
316 | + | ||
317 | + if (titles == '') { console.log('nothing'); } | ||
318 | + else { console.log(titles); } | ||
319 | + } | ||
320 | + } | ||
321 | + res.render('result', { category: 'park', titles: titles, appliance_list: appliance_list }); | ||
322 | + }); | ||
323 | + }); | ||
324 | + }); | ||
325 | + }); | ||
326 | +}); | ||
327 | + | ||
328 | +module.exports = router; | ||
329 | + | ... | ... |
... | @@ -91,7 +91,7 @@ | ... | @@ -91,7 +91,7 @@ |
91 | <p> | 91 | <p> |
92 | 지역 선택 | 92 | 지역 선택 |
93 | </p> | 93 | </p> |
94 | - <form action="/category/hospital" method="post" name="location" id="location"> | 94 | + <form action="/category/park" method="post" name="location" id="location"> |
95 | <select onchange="sm()" name="user_gu" id="user_gu_select"> | 95 | <select onchange="sm()" name="user_gu" id="user_gu_select"> |
96 | <option value='' selected="true" disabled="true">--Please choose an option--</option> | 96 | <option value='' selected="true" disabled="true">--Please choose an option--</option> |
97 | <option value='금천구'>금천구</option> | 97 | <option value='금천구'>금천구</option> | ... | ... |
views/results/appliance.ejs
0 → 100644
1 | +it's appliance page | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
views/results/medicine.ejs
0 → 100644
1 | +it's medicine page | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
views/results/park.ejs
0 → 100644
1 | +it's park page | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment