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