Eunsu486

Add user_input function

...@@ -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
......