db 연결 패치
This commit is contained in:
3
App.tsx
3
App.tsx
@@ -77,10 +77,13 @@ const MapResizer = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const AdSenseComponent = () => {
|
const AdSenseComponent = () => {
|
||||||
|
const loadedRef = useRef(false);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (loadedRef.current) return;
|
||||||
try {
|
try {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
(window.adsbygoogle = window.adsbygoogle || []).push({});
|
(window.adsbygoogle = window.adsbygoogle || []).push({});
|
||||||
|
loadedRef.current = true;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('AdSense error:', e);
|
console.error('AdSense error:', e);
|
||||||
}
|
}
|
||||||
|
|||||||
13
package-lock.json
generated
13
package-lock.json
generated
@@ -10,6 +10,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@google/genai": "1.40.0",
|
"@google/genai": "1.40.0",
|
||||||
"cors": "^2.8.6",
|
"cors": "^2.8.6",
|
||||||
|
"dotenv": "^17.3.1",
|
||||||
"express": "^5.2.1",
|
"express": "^5.2.1",
|
||||||
"leaflet": "1.9.4",
|
"leaflet": "1.9.4",
|
||||||
"lucide-react": "0.460.0",
|
"lucide-react": "0.460.0",
|
||||||
@@ -2168,6 +2169,18 @@
|
|||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/dotenv": {
|
||||||
|
"version": "17.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz",
|
||||||
|
"integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==",
|
||||||
|
"license": "BSD-2-Clause",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://dotenvx.com"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/dunder-proto": {
|
"node_modules/dunder-proto": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
|
||||||
|
|||||||
@@ -5,12 +5,14 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
"server": "node server.js",
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
"preview": "vite preview"
|
"preview": "vite preview"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@google/genai": "1.40.0",
|
"@google/genai": "1.40.0",
|
||||||
"cors": "^2.8.6",
|
"cors": "^2.8.6",
|
||||||
|
"dotenv": "^17.3.1",
|
||||||
"express": "^5.2.1",
|
"express": "^5.2.1",
|
||||||
"leaflet": "1.9.4",
|
"leaflet": "1.9.4",
|
||||||
"lucide-react": "0.460.0",
|
"lucide-react": "0.460.0",
|
||||||
|
|||||||
12
server.js
12
server.js
@@ -1,3 +1,4 @@
|
|||||||
|
import "dotenv/config";
|
||||||
import express from 'express';
|
import express from 'express';
|
||||||
import mysql from 'mysql2/promise';
|
import mysql from 'mysql2/promise';
|
||||||
import cors from 'cors';
|
import cors from 'cors';
|
||||||
@@ -55,7 +56,8 @@ async function initializeDB() {
|
|||||||
const [rows] = await pool.query('SELECT COUNT(*) as count FROM markers');
|
const [rows] = await pool.query('SELECT COUNT(*) as count FROM markers');
|
||||||
console.log(`[DB] Current Status: ${rows[0].count} markers stored in database.`);
|
console.log(`[DB] Current Status: ${rows[0].count} markers stored in database.`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('[DB] MariaDB connection failed:', error.message);
|
console.error('[DB] MariaDB connection failed details:', error);
|
||||||
|
console.error('[DB] Host:', dbConfig.host);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -74,8 +76,8 @@ app.get('/api/markers', async (req, res) => {
|
|||||||
}));
|
}));
|
||||||
res.json(formattedMarkers);
|
res.json(formattedMarkers);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error('[API] GET Markers Error:', error);
|
||||||
res.status(500).json({ error: 'Failed to fetch markers' });
|
res.status(500).json({ error: 'Failed to fetch markers', detail: error.message });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -97,8 +99,8 @@ app.post('/api/markers', async (req, res) => {
|
|||||||
if (isDebug) console.log(`[API] Successfully saved marker: ${id}`);
|
if (isDebug) console.log(`[API] Successfully saved marker: ${id}`);
|
||||||
res.json({ success: true });
|
res.json({ success: true });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error('[API] POST Marker Error:', error);
|
||||||
res.status(500).json({ error: 'Failed to save marker' });
|
res.status(500).json({ error: 'Failed to save marker', detail: error.message });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user