Donghoon Kim

MySQL DB 연동

File mode changed
1 -var map;
2 var pos; 1 var pos;
3 var infowindow; 2 var infowindow;
4 var service; 3 var service;
5 -var result_food = [];
6 -var result_entertainment = [];
7 -var result_room = [];
8 4
9 -export { pos as posiiton }; 5 +var result_entertainment = []
10 -export { result_food as foodList }; 6 +var result_food = []
11 -export { result_entertainment as entList }; 7 +var result_room = []
12 -export { result_room as roomList };
13 8
14 function initMap() { 9 function initMap() {
15 - map = new google.maps.Map(document.getElementById('map'), {
16 - center: {lat: -34.397, lng: 150.644},
17 - zoom: 17
18 - });
19 - infowindow = new google.maps.InfoWindow();
20 -
21 -
22 // Try HTML5 geolocation. 10 // Try HTML5 geolocation.
23 if (navigator.geolocation) { 11 if (navigator.geolocation) {
24 navigator.geolocation.getCurrentPosition(function(position) { 12 navigator.geolocation.getCurrentPosition(function(position) {
...@@ -27,22 +15,22 @@ function initMap() { ...@@ -27,22 +15,22 @@ function initMap() {
27 lng: position.coords.longitude 15 lng: position.coords.longitude
28 }; 16 };
29 17
18 + var map = new google.maps.Map(document.getElementById('map'), {
19 + center: pos,
20 + zoom: 17
21 + });
22 + infowindow = new google.maps.InfoWindow();
23 +
30 map.setCenter(pos); 24 map.setCenter(pos);
31 25
32 service = new google.maps.places.PlacesService(map); 26 service = new google.maps.places.PlacesService(map);
33 27
34 - service.nearbySearch({
35 - location: pos,
36 - radius: 500,
37 - type: ['bakery']
38 - }, callback_foods);
39 -
40 searchPlace('bar','food'); 28 searchPlace('bar','food');
41 searchPlace('cafe','food'); 29 searchPlace('cafe','food');
42 searchPlace('meal_delivery','food'); 30 searchPlace('meal_delivery','food');
43 searchPlace('meal_takeaway','food'); 31 searchPlace('meal_takeaway','food');
44 searchPlace('restaurant','food'); 32 searchPlace('restaurant','food');
45 - 33 + searchPlace('bakery','food');
46 34
47 searchPlace('department_store','entertainment'); 35 searchPlace('department_store','entertainment');
48 searchPlace('movie_theater','entertainment'); 36 searchPlace('movie_theater','entertainment');
...@@ -52,6 +40,17 @@ function initMap() { ...@@ -52,6 +40,17 @@ function initMap() {
52 searchPlace('zoo','entertainment'); 40 searchPlace('zoo','entertainment');
53 41
54 searchPlace('lodging','room'); 42 searchPlace('lodging','room');
43 +
44 + // put data to db
45 + for (var i = 0; i < results_food.length; i++) {
46 + putDataToDB(results_food[i], 'food')
47 + }
48 + for (var i = 0; i < results_entertainment.length; i++) {
49 + putDataToDB(results_entertainment[i], 'entertainment')
50 + }
51 + for (var i = 0; i < results_room.length; i++) {
52 + putDataToDB(results_room[i], 'room')
53 + }
55 }); 54 });
56 } 55 }
57 } 56 }
...@@ -62,21 +61,21 @@ function searchPlace(str, placeType) { ...@@ -62,21 +61,21 @@ function searchPlace(str, placeType) {
62 service.nearbySearch({ 61 service.nearbySearch({
63 location: pos, 62 location: pos,
64 radius: 500, 63 radius: 500,
65 - type: ['meal_takeaway'] 64 + type: [str]
66 }, callback_foods); 65 }, callback_foods);
67 break; 66 break;
68 case 'entertainment': 67 case 'entertainment':
69 service.nearbySearch({ 68 service.nearbySearch({
70 location: pos, 69 location: pos,
71 radius: 500, 70 radius: 500,
72 - type: [str.toString()] 71 + type: [str]
73 }, callback_entertainment); 72 }, callback_entertainment);
74 break; 73 break;
75 case 'room': 74 case 'room':
76 service.nearbySearch({ 75 service.nearbySearch({
77 location: pos, 76 location: pos,
78 radius: 500, 77 radius: 500,
79 - type: ['lodging'] 78 + type: [str]
80 }, callback_rooms); 79 }, callback_rooms);
81 break; 80 break;
82 default: 81 default:
...@@ -112,8 +111,6 @@ function callback_rooms(results, status) { ...@@ -112,8 +111,6 @@ function callback_rooms(results, status) {
112 } 111 }
113 } 112 }
114 113
115 -
116 -
117 function createMarker_foods(place) { 114 function createMarker_foods(place) {
118 var marker = new google.maps.Marker({ 115 var marker = new google.maps.Marker({
119 map: map, 116 map: map,
...@@ -155,3 +152,78 @@ function createMarker_rooms(place) { ...@@ -155,3 +152,78 @@ function createMarker_rooms(place) {
155 infowindow.open(map, this); 152 infowindow.open(map, this);
156 }); 153 });
157 } 154 }
155 +
156 +function putDataToDB(result, category1) {
157 + const id = result;
158 + const place_id =result;
159 + const name = result;
160 + const address = result;
161 + let category_big = category1
162 + const category_small = result;
163 + const image = result;
164 + const rating = result;
165 + const lng = result;
166 + const lat =result;
167 +
168 + const QueryCheck = () => {
169 + if (!id || !place_id || !name || !address || !category_big || !category_small || !image || !rating || !lng || !lat) {
170 + return Promise.reject({
171 + message: 'Query Error'
172 + })
173 + }
174 + return Promise.resolve()
175 + }
176 +
177 + // 2. SQL Start
178 + const SQLStart = async (pool) => {
179 + try {
180 + let data = await pool.query('INSERT INTO PLACE(ID, PLACE_ID, NAME, ADDRESS, CATEGORY_BIG, CATEGORY_SMALL, IMAGE, RATING, LNG, LAT) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);', [id, place_id, name, address, category_big, category_small, image, rating, lng, lat])
181 + return Promise.resolve(pool)
182 + } catch(err) {
183 + return Promise.reject(err)
184 + }
185 + }
186 + // 3. Response
187 + const Response = (rows) => {
188 + return res.status(200).json(rows)
189 + }
190 +
191 + // 1. Query Check
192 + const FindQueryCheck = () => {
193 + if (!keyword) {
194 + return Promise.reject({
195 + message: 'Query Error'
196 + })
197 + }
198 + else return pool
199 + }
200 +
201 + // 2. SQL Start
202 + const FindSQLStart = (pool) => {
203 + return pool.query(`SELECT * FROM PLACE WHERE ID LIKE '%${id}%')
204 + }
205 +
206 + // 3. Response
207 + const FindResponse = (rows) => {
208 + return res.status(200).json(rows)
209 + }
210 +
211 + if([] == FindQueryCheck()
212 + .then(FindSQLStart)
213 + .then(FindResponse)
214 + .catch(err => {
215 + if (err) {
216 + return res.status(500).json(err.message || err)
217 + }
218 + }))
219 + {
220 + QueryCheck()
221 + .then(SQLStart)
222 + .then(Response)
223 + .catch(err => {
224 + if (err) {
225 + return res.status(500).json(err.message || err)
226 + }
227 + })
228 + }
229 +}
......
1 var express = require('express'); 1 var express = require('express');
2 -var path = require('path'); 2 +var router = require('./routes');
3 -var cookieParser = require('cookie-parser');
4 -var logger = require('morgan');
5 -
6 -var indexRouter = require('./routes/index');
7 -var usersRouter = require('./routes/users');
8 -
9 var app = express(); 3 var app = express();
10 4
11 -app.use(logger('dev')); 5 +app.use('/', router);
12 -app.use(express.json());
13 -app.use(express.urlencoded({ extended: false }));
14 -app.use(cookieParser());
15 -app.use(express.static(path.join(__dirname, 'public')));
16 -
17 -app.use('/', indexRouter);
18 -app.use('/users', usersRouter);
19 6
20 var server = app.listen(3000); 7 var server = app.listen(3000);
......
1 -console.log("Hello World!");
...\ No newline at end of file ...\ No newline at end of file
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
95 </ul> 95 </ul>
96 96
97 <div id="content-wrapper"> 97 <div id="content-wrapper">
98 - <script type="text/javascript" src="js/getPlaceList.js"></script> 98 + <script type="text/javascript" src="/../api/getPlaceList.js"></script>
99 <div id="map"></div> 99 <div id="map"></div>
100 <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDg4CkUEEt_96n1ork1nL5t4E_SpdKrgMI&libraries=places&callback=initMap" async defer></script> 100 <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDg4CkUEEt_96n1ork1nL5t4E_SpdKrgMI&libraries=places&callback=initMap" async defer></script>
101 <!-- Sticky Footer --> 101 <!-- Sticky Footer -->
......
1 -import entList from 'getPlaceList'
1 -//import position from 'getPlaceList'
2 -import foodList from 'getPlaceList'
1 -import roomList from 'getPlaceList'
...@@ -6,8 +6,4 @@ router.get('/', function(req, res, next) { ...@@ -6,8 +6,4 @@ router.get('/', function(req, res, next) {
6 res.render('index', { title: 'Express' }); 6 res.render('index', { title: 'Express' });
7 }); 7 });
8 8
9 -router.get('/Foods', function(req, res, next) {
10 - res.render('Foods', { title: 'Express' });
11 -});
12 -
13 -module.exports = router;
...\ No newline at end of file ...\ No newline at end of file
9 +module.exports = router;
......
1 -var express = require('express');
2 -var router = express.Router();
3 -
4 -/* GET users listing. */
5 -router.get('/', function(req, res, next) {
6 - res.send('respond with a resource');
7 -});
8 -
9 -module.exports = router;