Fixed API-Backend

This commit is contained in:
2025-05-07 15:10:12 +02:00
parent 6c0d6d650b
commit c3b05a671f
8 changed files with 96 additions and 14 deletions

View File

@@ -1,6 +1,6 @@
import * as express from 'express';
import pathRoutes from './routes/parkRoutes';
import coasterRoutes from './routes/coasterRoutes';
import express from 'express';
import pathRoutes from './routes/parkRoutes.js';
import coasterRoutes from './routes/coasterRoutes.js';
const app = express();
const port = 3000;

View File

@@ -1,6 +1,6 @@
import sqlite3 from 'sqlite3';
const db = new sqlite3.Database('./coasterdb.sqlite3');
const db = new sqlite3.Database('./database.db');
export const getCoasters = (): Promise<any[]> => {
return new Promise((resolve, reject) => {

View File

@@ -1,6 +1,6 @@
import sqlite3 from 'sqlite3';
const db = new sqlite3.Database('./coasterdb.sqlite3');
const db = new sqlite3.Database('./database.db');
export const getParks = (): Promise<any[]> => {
return new Promise((resolve, reject) => {

View File

@@ -1,5 +1,5 @@
import { Router } from 'express';
import { getCoasters, getCoasterById } from '../models/coaster';
import { getCoasters, getCoasterById } from '../models/coaster.js';
const router = Router();
@@ -9,7 +9,8 @@ router.get('/', async (req, res) => {
const coasters = await getCoasters();
res.json(coasters);
} catch (err) {
res.status(500).json({ error: err.message });
console.error('Fehler beim Abrufen der Achterbahnen:', err);
res.status(500).json({ message: 'Fehler beim Abrufen der Achterbahnen' });
}
});
@@ -24,7 +25,7 @@ router.get('/:id', async (req, res) => {
res.status(404).json({ message: 'Achterbahn nicht gefunden' });
}
} catch (err) {
res.status(500).json({ error: err.message });
}
});

View File

@@ -1,5 +1,5 @@
import { Router } from 'express';
import { getParks, getParkById } from '../models/park';
import { getParks, getParkById } from '../models/park.js';
const router = Router();
@@ -9,7 +9,8 @@ router.get('/', async (req, res) => {
const parks = await getParks();
res.json(parks);
} catch (err) {
res.status(500).json({ error: err.message });
console.error('Fehler beim Abrufen der Parks:', err);
res.status(500).json({ message: 'Fehler beim Abrufen der Parks' });
}
});
@@ -24,7 +25,8 @@ router.get('/:id', async (req, res) => {
res.status(404).json({ message: 'Park nicht gefunden' });
}
} catch (err) {
res.status(500).json({ error: err.message });
console.error('Fehler beim Abrufen des Parks:', err);
res.status(500).json({ message: 'Fehler beim Abrufen des Parks' });
}
});

15
api-backend/tsconfig.json Normal file
View File

@@ -0,0 +1,15 @@
{
"extends": "@tsconfig/node18/tsconfig.json",
"compilerOptions": {
"module": "ESNext",
"target": "ES2020",
"moduleResolution": "node",
"esModuleInterop": true,
"skipLibCheck": true,
"strict": true,
"resolveJsonModule": true,
"forceConsistentCasingInFileNames": true
},
"include": ["src"]
}

67
package-lock.json generated
View File

@@ -23,6 +23,7 @@
"@vue/tsconfig": "^0.7.0",
"autoprefixer": "^10.4.20",
"axios": "^1.7.9",
"cross-env": "^7.0.3",
"postcss": "^8.5.1",
"tailwindcss": "^4.0.0",
"ts-node": "^10.9.2",
@@ -2209,6 +2210,38 @@
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
"dev": true
},
"node_modules/cross-env": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
"integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
"dev": true,
"dependencies": {
"cross-spawn": "^7.0.1"
},
"bin": {
"cross-env": "src/bin/cross-env.js",
"cross-env-shell": "src/bin/cross-env-shell.js"
},
"engines": {
"node": ">=10.14",
"npm": ">=6",
"yarn": ">=1"
}
},
"node_modules/cross-spawn": {
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"dev": true,
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
"which": "^2.0.1"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/css-color-names": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
@@ -3310,7 +3343,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"optional": true
"devOptional": true
},
"node_modules/jiti": {
"version": "2.4.2",
@@ -4155,6 +4188,15 @@
"node": ">=0.10.0"
}
},
"node_modules/path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
@@ -4917,6 +4959,27 @@
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
"dependencies": {
"shebang-regex": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/shebang-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/side-channel": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
@@ -5669,7 +5732,7 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"optional": true,
"devOptional": true,
"dependencies": {
"isexe": "^2.0.0"
},

View File

@@ -7,7 +7,7 @@
"dev": "vite",
"build": "vue-tsc -b && vite build",
"preview": "vite preview",
"api-backend": "node --loader ts-node/esm api-backend/src/index.ts"
"api-backend": "cross-env TS_NODE_PROJECT=./api-backend/tsconfig.json node --loader ts-node/esm api-backend/src/index.ts"
},
"dependencies": {
"express": "^5.1.0",
@@ -25,6 +25,7 @@
"@vue/tsconfig": "^0.7.0",
"autoprefixer": "^10.4.20",
"axios": "^1.7.9",
"cross-env": "^7.0.3",
"postcss": "^8.5.1",
"tailwindcss": "^4.0.0",
"ts-node": "^10.9.2",