From fccd897f79440e118e59f3c2a82bb61bb90bc84e Mon Sep 17 00:00:00 2001 From: Timo Volkmann Date: Wed, 10 Jun 2020 09:20:15 +0200 Subject: [PATCH] add sql connection, config through ENV --- Scripts/setup.sql | 30 ++++++++--------- backend/.env | 5 +++ backend/climate.js | 0 backend/dbsql.js | 13 ++++++++ backend/package-lock.json | 68 +++++++++++++++++++++++++++++++++++++++ backend/package.json | 4 ++- 6 files changed, 104 insertions(+), 16 deletions(-) create mode 100644 backend/.env create mode 100644 backend/climate.js create mode 100644 backend/dbsql.js diff --git a/Scripts/setup.sql b/Scripts/setup.sql index b4378f3..5984893 100644 --- a/Scripts/setup.sql +++ b/Scripts/setup.sql @@ -14,19 +14,19 @@ -- Exportiere Datenbank Struktur für travopti DROP DATABASE IF EXISTS `travopti`; -CREATE DATABASE IF NOT EXISTS `travopti` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_german1_ci */; +CREATE DATABASE IF NOT EXISTS `travopti` /*!40100 DEFAULT CHARACTER SET latin1 */; USE `travopti`; -- Exportiere Struktur von Tabelle travopti.countries DROP TABLE IF EXISTS `countries`; CREATE TABLE IF NOT EXISTS `countries` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `country` varchar(255) COLLATE latin1_german1_ci NOT NULL, + `country` varchar(255) NOT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`id`), UNIQUE KEY `country` (`country`) -) ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci; +) ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=utf8mb4; -- Exportiere Daten aus Tabelle travopti.countries: ~37 rows (ungefähr) DELETE FROM `countries`; @@ -75,9 +75,9 @@ INSERT INTO `countries` (`id`, `country`, `created_at`, `updated_at`) VALUES DROP TABLE IF EXISTS `regions`; CREATE TABLE IF NOT EXISTS `regions` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `region` varchar(255) COLLATE latin1_german1_ci NOT NULL, + `region` varchar(255) NOT NULL, `country_id` int(11) DEFAULT NULL, - `meteostat_id` int(11) DEFAULT NULL, + `meteostat_id` varchar(11) DEFAULT NULL, `lon` double(22,0) DEFAULT NULL, `lat` double(22,0) DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), @@ -85,7 +85,7 @@ CREATE TABLE IF NOT EXISTS `regions` ( PRIMARY KEY (`id`) USING BTREE, KEY `FK_regions_countries` (`country_id`) USING BTREE, CONSTRAINT `FK_regions_countries` FOREIGN KEY (`country_id`) REFERENCES `countries` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=127 DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci; +) ENGINE=InnoDB AUTO_INCREMENT=127 DEFAULT CHARSET=utf8mb4; -- Exportiere Daten aus Tabelle travopti.regions: ~47 rows (ungefähr) DELETE FROM `regions`; @@ -160,7 +160,7 @@ CREATE TABLE IF NOT EXISTS `regions_byt` ( PRIMARY KEY (`id`), UNIQUE KEY `region_id` (`region_id`,`travelstyle`) USING BTREE, CONSTRAINT `FK_regions_byt_regions` FOREIGN KEY (`region_id`) REFERENCES `regions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=191 DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci; +) ENGINE=InnoDB AUTO_INCREMENT=191 DEFAULT CHARSET=utf8mb4; -- Exportiere Daten aus Tabelle travopti.regions_byt: ~141 rows (ungefähr) DELETE FROM `regions_byt`; @@ -323,7 +323,7 @@ CREATE TABLE IF NOT EXISTS `regions_trivago` ( UNIQUE KEY `region_id_year_month` (`region_id`,`year`,`month`), KEY `FK_regions_trivago_regions` (`region_id`), CONSTRAINT `FK_regions_trivago_regions` FOREIGN KEY (`region_id`) REFERENCES `regions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=1278 DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci; +) ENGINE=InnoDB AUTO_INCREMENT=1278 DEFAULT CHARSET=utf8mb4; -- Exportiere Daten aus Tabelle travopti.regions_trivago: ~940 rows (ungefähr) DELETE FROM `regions_trivago`; @@ -1289,7 +1289,7 @@ CREATE TABLE IF NOT EXISTS `region_climate` ( UNIQUE KEY `region_id_year_month` (`region_id`,`year`,`month`), KEY `FK_region_climate_regions` (`region_id`), CONSTRAINT `FK_region_climate_regions` FOREIGN KEY (`region_id`) REFERENCES `regions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Exportiere Daten aus Tabelle travopti.region_climate: ~0 rows (ungefähr) DELETE FROM `region_climate`; @@ -1300,14 +1300,14 @@ DELETE FROM `region_climate`; DROP TABLE IF EXISTS `search_presets`; CREATE TABLE IF NOT EXISTS `search_presets` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `parameter` varchar(255) COLLATE latin1_german1_ci NOT NULL, - `name` varchar(255) COLLATE latin1_german1_ci NOT NULL, + `parameter` varchar(255) NOT NULL, + `name` varchar(255) NOT NULL, `value_1` int(11) NOT NULL, `value_2` int(11) DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Exportiere Daten aus Tabelle travopti.search_presets: ~0 rows (ungefähr) DELETE FROM `search_presets`; @@ -1318,11 +1318,11 @@ DELETE FROM `search_presets`; DROP TABLE IF EXISTS `search_tags`; CREATE TABLE IF NOT EXISTS `search_tags` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `searchtag` varchar(255) COLLATE latin1_german1_ci NOT NULL, + `searchtag` varchar(255) NOT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Exportiere Daten aus Tabelle travopti.search_tags: ~0 rows (ungefähr) DELETE FROM `search_tags`; @@ -1343,7 +1343,7 @@ CREATE TABLE IF NOT EXISTS `user_feedback` ( KEY `FK_user_feedback_search_tags` (`tag_id`), CONSTRAINT `FK_user_feedback_regions` FOREIGN KEY (`region_id`) REFERENCES `regions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_user_feedback_search_tags` FOREIGN KEY (`tag_id`) REFERENCES `search_tags` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Exportiere Daten aus Tabelle travopti.user_feedback: ~0 rows (ungefähr) DELETE FROM `user_feedback`; diff --git a/backend/.env b/backend/.env new file mode 100644 index 0000000..afb8d07 --- /dev/null +++ b/backend/.env @@ -0,0 +1,5 @@ +METEOSTAT_API_KEY=LMlDskju +DB_HOST=192.168.43.52 +DB_USER=root +DB_PASSWORD=devtest +DB_PORT=3307 \ No newline at end of file diff --git a/backend/climate.js b/backend/climate.js new file mode 100644 index 0000000..e69de29 diff --git a/backend/dbsql.js b/backend/dbsql.js new file mode 100644 index 0000000..d40689e --- /dev/null +++ b/backend/dbsql.js @@ -0,0 +1,13 @@ +var mysql = require('mysql'); +require('dotenv').config() +console.log(process.env); + +var connection = mysql.createConnection({ + host: process.env.DB_HOST, + user: process.env.DB_USER, + password: process.env.DB_PASSWORD, + port: process.env.DB_PORT +}); + +connection.connect(); + \ No newline at end of file diff --git a/backend/package-lock.json b/backend/package-lock.json index fd25ecb..a4a6d28 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -18,6 +18,11 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" + }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -63,6 +68,11 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -81,6 +91,11 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -192,6 +207,11 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -230,6 +250,17 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "requires": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + } + }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", @@ -253,6 +284,11 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, "proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", @@ -283,6 +319,20 @@ "unpipe": "1.0.0" } }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -336,11 +386,24 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, + "sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=" + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", @@ -360,6 +423,11 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", diff --git a/backend/package.json b/backend/package.json index 87a7cb8..4ff4bc6 100644 --- a/backend/package.json +++ b/backend/package.json @@ -9,6 +9,8 @@ "author": "", "license": "ISC", "dependencies": { - "express": "^4.17.1" + "dotenv": "^8.2.0", + "express": "^4.17.1", + "mysql": "^2.18.1" } }