add backend/src/app.ts
This commit is contained in:
parent
5ee7c75b63
commit
5c9a5e4f08
35
backend/src/app.ts
Normal file
35
backend/src/app.ts
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
import 'dotenv/config';
|
||||||
|
import express from 'express';
|
||||||
|
import cors from 'cors';
|
||||||
|
import { bankingWebhookRawRouter, paymentsRouter } from './routes/bankingWebhook';
|
||||||
|
import { cockpitRouter } from './routes/cockpit';
|
||||||
|
|
||||||
|
export function createApp() {
|
||||||
|
const app = express();
|
||||||
|
|
||||||
|
// Webhook-Router zuerst: hat seinen eigenen express.raw()-Parser pro Route
|
||||||
|
// (siehe routes/bankingWebhook.ts) und läuft daher unabhängig vom globalen
|
||||||
|
// JSON-Parser unten.
|
||||||
|
app.use('/v1', bankingWebhookRawRouter);
|
||||||
|
|
||||||
|
// CORS: erlaubt dem lokal geöffneten Web-Dashboard (file:// oder
|
||||||
|
// localhost-Server), auf die API zuzugreifen. Für den Testbetrieb offen
|
||||||
|
// konfiguriert (origin: true spiegelt den anfragenden Origin) — für einen
|
||||||
|
// echten Produktivbetrieb sollte hier eine feste Allowlist stehen.
|
||||||
|
app.use(cors({ origin: true }));
|
||||||
|
|
||||||
|
// Alle übrigen Routen bekommen normal geparstes JSON.
|
||||||
|
app.use(express.json());
|
||||||
|
app.use('/v1', paymentsRouter);
|
||||||
|
app.use('/v1', cockpitRouter);
|
||||||
|
|
||||||
|
app.get('/health', (_req, res) => res.status(200).json({ ok: true }));
|
||||||
|
|
||||||
|
return app;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (require.main === module) {
|
||||||
|
const app = createApp();
|
||||||
|
const port = process.env.PORT ? Number(process.env.PORT) : 3000;
|
||||||
|
app.listen(port, () => console.log(`Backend läuft auf Port ${port}`));
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user