Suyeon Jung

Add dynamic sigun_code update

...@@ -5,36 +5,172 @@ require('dotenv').config(); ...@@ -5,36 +5,172 @@ require('dotenv').config();
5 5
6 /* GET home page. */ 6 /* GET home page. */
7 let SIGUN_CODE; 7 let SIGUN_CODE;
8 -let SIGUNDONG_CODE; 8 +let user_latitude;
9 +let user_logitude;
10 +let sigun = [{
11 + sigun_name: '가평군',
12 + sigun_code: 41820
13 + },
14 + {
15 + sigun_name: '경기도',
16 + sigun_code: 41000
17 + },
18 + {
19 + sigun_name: '고양시',
20 + sigun_code: 41280
21 + },
22 + {
23 + sigun_name: '과천시',
24 + sigun_code: 41290
25 + },
26 + {
27 + sigun_name: '광명시',
28 + sigun_code: 41210
29 + },
30 + {
31 + sigun_name: '광주시',
32 + sigun_code: 41610
33 + },
34 + {
35 + sigun_name: '구리시',
36 + sigun_code: 41310
37 + },
38 + {
39 + sigun_name: '군포시',
40 + sigun_code: 41410
41 + },
42 + {
43 + sigun_name: '김포시',
44 + sigun_code: 41570
45 + },
46 + {
47 + sigun_name: '남양주시',
48 + sigun_code: 41360
49 + },
50 + {
51 + sigun_name: '동두천시',
52 + sigun_code: 41250
53 + },
54 + {
55 + sigun_name: '부천시',
56 + sigun_code: 41190
57 + },
58 + {
59 + sigun_name: '성남시',
60 + sigun_code: 41130
61 + },
62 + {
63 + sigun_name: '수원시',
64 + sigun_code: 41110
65 + },
66 + {
67 + sigun_name: '시흥시',
68 + sigun_code: 41390
69 + },
70 + {
71 + sigun_name: '안산시',
72 + sigun_code: 41270
73 + },
74 + {
75 + sigun_name: '안성시',
76 + sigun_code: 41550
77 + },
78 + {
79 + sigun_name: '안양시',
80 + sigun_code: 41170
81 + },
82 + {
83 + sigun_name: '양주시',
84 + sigun_code: 41630
85 + },
86 + {
87 + sigun_name: '양평군',
88 + sigun_code: 41830
89 + },
90 + {
91 + sigun_name: '여주시',
92 + sigun_code: 41670
93 + },
94 + {
95 + sigun_name: '연천군',
96 + sigun_code: 41800
97 + },
98 + {
99 + sigun_name: '오산시',
100 + sigun_code: 41370
101 + },
102 + {
103 + sigun_name: '용인시',
104 + sigun_code: 41460
105 + },
106 + {
107 + sigun_name: '의왕시',
108 + sigun_code: 41430
109 + },
110 + {
111 + sigun_name: '의정부시',
112 + sigun_code: 41150
113 + },
114 + {
115 + sigun_name: '이천시',
116 + sigun_code: 41500
117 + },
118 + {
119 + sigun_name: '파주시',
120 + sigun_code: 41480
121 + },
122 + {
123 + sigun_name: '평택시',
124 + sigun_code: 41220
125 + },
126 + {
127 + sigun_name: '포천시',
128 + sigun_code: 41650
129 + },
130 + {
131 + sigun_name: '하남시',
132 + sigun_code: 41450
133 + },
134 + {
135 + sigun_name: '화성시',
136 + sigun_code: 41590
137 + },
138 +]
139 +
9 140
10 // 사용자가 index 페이지에서 주소를 입력하고 넘어오면 141 // 사용자가 index 페이지에서 주소를 입력하고 넘어오면
11 router.post('/', function(req, res) { 142 router.post('/', function(req, res) {
12 console.log(req.body); 143 console.log(req.body);
13 let userLocation = req.body.userLocation; 144 let userLocation = req.body.userLocation;
14 - // let userSi = req.body.si 145 + console.log('사용자가 입력한 주소', userLocation);
15 - // let userDong = req.body.dong;
16 - let user_latitude;
17 - let user_logitude;
18 - console.log(userLocation);
19 let KAKAO_API_KEY = process.env.KAKAO_APIKEY; 146 let KAKAO_API_KEY = process.env.KAKAO_APIKEY;
20 let kakaoOptions = { 147 let kakaoOptions = {
21 - url: 'https://dapi.kakao.com/v2/local/search/address.json', 148 + url: 'https://dapi.kakao.com/v2/local/search/address.json',
22 - method: 'GET', 149 + method: 'GET',
23 - headers: { 150 + headers: {
24 - 'Authorization': `KakaoAK ${KAKAO_API_KEY}` 151 + 'Authorization': `KakaoAK ${KAKAO_API_KEY}`
25 - }, 152 + },
26 - qs: { 153 + qs: {
27 - query: userLocation 154 + query: userLocation
28 - }, 155 + },
29 - encoding: 'UTF-8', 156 + encoding: 'UTF-8',
157 + }
158 + // sigun code 받는 부분
159 + for (var key in sigun) {
160 + if (userLocation.includes(sigun[key].sigun_name)) {
161 + console.log('hey!');
162 + SIGUN_CODE = sigun[key].sigun_code;
163 + }
164 + console.log(sigun[key].sigun_name);
30 } 165 }
166 + console.log('SIGUN_CODE', SIGUN_CODE);
31 request(kakaoOptions, function(err, res, body) { 167 request(kakaoOptions, function(err, res, body) {
32 if (!err && res.statusCode == 200) { 168 if (!err && res.statusCode == 200) {
33 var result = JSON.parse(body); 169 var result = JSON.parse(body);
34 console.log('result', result); 170 console.log('result', result);
35 user_latitude = result.documents[0].address.x; 171 user_latitude = result.documents[0].address.x;
36 user_logitude = result.documents[0].address.y; 172 user_logitude = result.documents[0].address.y;
37 - console.log(user_latitude, user_logitude); 173 + console.log('위도, 경도', user_latitude, user_logitude);
38 } 174 }
39 }) 175 })
40 res.render('category', { userLocation: req.body.userLocation }); 176 res.render('category', { userLocation: req.body.userLocation });
...@@ -45,7 +181,7 @@ router.get('/food', function(req, res) { ...@@ -45,7 +181,7 @@ router.get('/food', function(req, res) {
45 181
46 // 맛집 리스트 조회 182 // 맛집 리스트 조회
47 let GYEONGI_API_KEY = process.env.GYEONGGI_APIKEY; 183 let GYEONGI_API_KEY = process.env.GYEONGGI_APIKEY;
48 - let sigun_cd = 41110; 184 + let sigun_cd = SIGUN_CODE;
49 let url = 'https://openapi.gg.go.kr/PlaceThatDoATasteyFoodSt'; 185 let url = 'https://openapi.gg.go.kr/PlaceThatDoATasteyFoodSt';
50 let qs = `?KEY=${GYEONGI_API_KEY}&SIGUN_CD=${sigun_cd}&Type=json`; 186 let qs = `?KEY=${GYEONGI_API_KEY}&SIGUN_CD=${sigun_cd}&Type=json`;
51 187
...@@ -55,16 +191,16 @@ router.get('/food', function(req, res) { ...@@ -55,16 +191,16 @@ router.get('/food', function(req, res) {
55 }, function(err, response, body) { 191 }, function(err, response, body) {
56 if (!err && res.statusCode == 200) { 192 if (!err && res.statusCode == 200) {
57 let food_result = JSON.parse(body); 193 let food_result = JSON.parse(body);
194 + // console.log('food_result', food_result.PlaceThatDoATasteyFoodSt[1]);
58 let store_names = [] 195 let store_names = []
59 - // console.log('정상출력여부', result) 196 + for (let i = 0; i < food_result.PlaceThatDoATasteyFoodSt[1].row.length; i++) {
60 - // console.log('총 출력 개수', result.PlaceThatDoATasteyFoodSt[0].head[0].list_total_count);
61 - for (let i = 0; i < 16; i++) {
62 // 상호명, 음식명, 전화번호, 도로명주소(REFINE_ROADNM_ADDR), 지번 주소(REFINE_LOTNO_ADDR) 197 // 상호명, 음식명, 전화번호, 도로명주소(REFINE_ROADNM_ADDR), 지번 주소(REFINE_LOTNO_ADDR)
63 store_name = food_result.PlaceThatDoATasteyFoodSt[1].row[i]; 198 store_name = food_result.PlaceThatDoATasteyFoodSt[1].row[i];
64 console.log('store_name', store_name); 199 console.log('store_name', store_name);
65 store_names.push(store_name); 200 store_names.push(store_name);
66 } 201 }
67 - console.log('food_result', food_result) 202 + console.log('food_result', food_result);
203 + console.log('store_names', store_names);
68 res.render('result', { store_names: store_names }); 204 res.render('result', { store_names: store_names });
69 } 205 }
70 }); 206 });
...@@ -74,29 +210,28 @@ router.get('/school', function(req, res) { ...@@ -74,29 +210,28 @@ router.get('/school', function(req, res) {
74 }); 210 });
75 router.get('/park', function(req, res) { 211 router.get('/park', function(req, res) {
76 let GYEONGI_API_KEY = process.env.GYEONGGI_APIKEY; 212 let GYEONGI_API_KEY = process.env.GYEONGGI_APIKEY;
77 - let sigun_cd = 41110; 213 + let sigun_cd = SIGUN_CODE;
78 let cityparknum = 0; 214 let cityparknum = 0;
79 let url = 'https://openapi.gg.go.kr/CityPark'; 215 let url = 'https://openapi.gg.go.kr/CityPark';
80 let qs = `?Type=json&KEY=${GYEONGI_API_KEY}&SIGUN_CD=${sigun_cd}`; 216 let qs = `?Type=json&KEY=${GYEONGI_API_KEY}&SIGUN_CD=${sigun_cd}`;
81 request({ 217 request({
82 - url: url + qs, 218 + url: url + qs,
83 - method: 'GET' 219 + method: 'GET'
84 - }, function(err, response, body) { 220 + }, function(err, response, body) {
85 - var park_result = JSON.parse(body); 221 + var park_result = JSON.parse(body);
86 - if (park_result.CityPark[0].head[1].RESULT.CODE == 'INFO-000') { 222 + if (park_result.CityPark[0].head[1].RESULT.CODE == 'INFO-000') {
87 - cityparknum = park_result.CityPark[0].head[0].list_total_count; 223 + cityparknum = park_result.CityPark[0].head[0].list_total_count;
88 - console.log(cityparknum + "개의 도시공원이 존재합니다."); 224 + console.log(cityparknum + "개의 도시공원이 존재합니다.");
89 - res.send(String(cityparknum) + "개의 도시공원이 존재합니다."); 225 + res.send(String(cityparknum) + "개의 도시공원이 존재합니다.");
90 - } else { 226 + } else {
91 - res.send("도시공원이 없습니다."); 227 + res.send("도시공원이 없습니다.");
92 - } 228 + }
93 - }) 229 + })
94 - //res.send('This is park');
95 }); 230 });
96 231
97 router.get('/shop', function(req, res) { 232 router.get('/shop', function(req, res) {
98 let GYEONGI_API_KEY = process.env.GYEONGGI_APIKEY; 233 let GYEONGI_API_KEY = process.env.GYEONGGI_APIKEY;
99 - let sigun_cd = 41110; 234 + let sigun_cd = SIGUN_CODE;
100 let mallnum = 0; 235 let mallnum = 0;
101 let url = 'https://openapi.gg.go.kr/MrktStoreM'; 236 let url = 'https://openapi.gg.go.kr/MrktStoreM';
102 let qs = `?Type=json&KEY=${GYEONGI_API_KEY}&SIGUN_CD=${sigun_cd}`; 237 let qs = `?Type=json&KEY=${GYEONGI_API_KEY}&SIGUN_CD=${sigun_cd}`;
...@@ -117,7 +252,7 @@ router.get('/shop', function(req, res) { ...@@ -117,7 +252,7 @@ router.get('/shop', function(req, res) {
117 252
118 router.get('/gym', function(req, res) { 253 router.get('/gym', function(req, res) {
119 let GYEONGI_API_KEY = process.env.GYEONGGI_APIKEY; 254 let GYEONGI_API_KEY = process.env.GYEONGGI_APIKEY;
120 - let sigun_cd = 41110; 255 + let sigun_cd = SIGUN_CODE;
121 let gymnum = 0; 256 let gymnum = 0;
122 let url = 'https://openapi.gg.go.kr/PhysicaFitnessTrainingPlace'; 257 let url = 'https://openapi.gg.go.kr/PhysicaFitnessTrainingPlace';
123 let qs = `?Type=json&KEY=${GYEONGI_API_KEY}&SIGUN_CD=${sigun_cd}`; 258 let qs = `?Type=json&KEY=${GYEONGI_API_KEY}&SIGUN_CD=${sigun_cd}`;
......