first test
This commit is contained in:
55
server.js
Normal file
55
server.js
Normal file
@@ -0,0 +1,55 @@
|
||||
// server.js
|
||||
// Main application file for the Node.js Express server
|
||||
|
||||
require('dotenv').config(); // Load environment variables first
|
||||
const express = require('express');
|
||||
const path = require('path');
|
||||
const cookieParser = require('cookie-parser');
|
||||
|
||||
// Import route handlers
|
||||
const authRoutes = require('./routes/authRoutes');
|
||||
const todoRoutes = require('./routes/todoRoutes');
|
||||
const viewRoutes = require('./routes/viewRoutes');
|
||||
|
||||
// Initialize Express app
|
||||
const app = express();
|
||||
const PORT = process.env.PORT || 3000;
|
||||
|
||||
// --- Middleware ---
|
||||
|
||||
// Parse JSON request bodies
|
||||
app.use(express.json());
|
||||
// Parse URL-encoded request bodies
|
||||
app.use(express.urlencoded({ extended: true }));
|
||||
// Parse cookies (needed for JWT authentication)
|
||||
app.use(cookieParser());
|
||||
|
||||
// Serve static files (HTML, CSS, JS) from the 'public' directory
|
||||
// Files in 'public' will be accessible directly, e.g., /style.css, /script.js
|
||||
app.use(express.static(path.join(__dirname, 'public')));
|
||||
|
||||
|
||||
// --- Routes ---
|
||||
|
||||
// API routes
|
||||
app.use('/api/auth', authRoutes); // Authentication routes (login, register, logout)
|
||||
app.use('/api/todos', todoRoutes); // Todo CRUD routes (protected by auth middleware inside the router)
|
||||
|
||||
// View routes (serving HTML pages)
|
||||
// These should generally be last, especially the '/' route,
|
||||
// to avoid conflicts with static files or API routes.
|
||||
app.use('/', viewRoutes);
|
||||
|
||||
|
||||
// --- Global Error Handler (Basic Example) ---
|
||||
// Catches errors passed via next(error)
|
||||
app.use((err, req, res, next) => {
|
||||
console.error("Global Error Handler:", err.stack);
|
||||
res.status(500).send('Etwas ist schiefgelaufen!');
|
||||
});
|
||||
|
||||
// --- Start Server ---
|
||||
app.listen(PORT, () => {
|
||||
console.log(`Server läuft auf http://localhost:${PORT}`);
|
||||
// Database connection message is handled in db.js
|
||||
});
|
Reference in New Issue
Block a user