오수빈

Merge branch 'subin'

...@@ -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; //개수
40 - for (i=0; i<numRows; i++){ 41 +
42 + if (numRows == 1){
41 // state 정상인 것만 추리기 43 // state 정상인 것만 추리기
42 - if (itemList.item[i].state._text == '정상'){ 44 + if (itemList.item.state._text == '정상'){
43 - hospital_list.push(itemList.item[i]); 45 + appliance_list.push(itemList.item);
46 + }
47 + }
48 + else if (numRows == 0){}
49 + else {
50 + for (i=0; i<numRows; i++){
51 + // state 정상인 것만 추리기
52 + if (itemList.item[i].state._text == '정상'){
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>
......
1 +it's appliance page
...\ No newline at end of file ...\ No newline at end of file
1 +it's medicine page
...\ No newline at end of file ...\ No newline at end of file
1 +it's park page
...\ No newline at end of file ...\ No newline at end of file