Elysia Tools

Durchsuche Tools, Beispiele, visuelle Erklärungen und Themenguides an einem klaren Ort.

Beliebte Kategorien

Themen

Sprache
ZHDERUPTENFRES

Elysia Tools

Mobile Navigation

Web-Frameworks

Express.js Beispiele

Express.js Web-Framework-Beispiele einschließlich Hello World, Routing, Middleware und REST-API

Beispiele

Einträge in dieser Sammlung

QuellcodejavascriptEinfach

Express.js Hello World

Express.js grundlegende Server-Setup und Hello World-Anwendung

Schwierigkeit

2/10

Geschätzte Zeit

10 min

Schlagwörter

express, node.js, web server, routing

Voraussetzungen

Node.js basics

javascript
// Express.js Hello World Examples

// 1. Basic Hello World server
const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
    res.send('Hello, World!');
});

app.listen(port, () => {
    console.log(`Server running at http://localhost:${port}`);
});

// 2. Hello World with different routes
app.get('/hello', (req, res) => {
    res.send('Hello, Express!');
});

app.get('/hello/:name', (req, res) => {
    res.send(`Hello, ${req.params.name}!`);
});

// 3. JSON response
app.get('/api/hello', (req, res) => {
    res.json({
        message: 'Hello, World!',
        timestamp: new Date().toISOString(),
        version: '1.0.0'
    });
});

// 4. HTML response
app.get('/html', (req, res) => {
    res.send(`
        <!DOCTYPE html>
        <html>
        <head>
            <title>Hello Express</title>
        </head>
        <body>
            <h1>Hello, World!</h1>
            <p>This is an HTML response from Express.js</p>
        </body>
        </html>
    `);
});

// 5. Route parameters with validation
app.get('/users/:userId', (req, res) => {
    const userId = parseInt(req.params.userId);
    if (isNaN(userId)) {
        return res.status(400).send('Invalid user ID');
    }
    res.send(`User ID: ${userId}`);
});

// 6. Query parameters
app.get('/search', (req, res) => {
    const { q, limit = 10 } = req.query;
    const parsedLimit = Number.parseInt(String(limit), 10);
    res.json({
        query: q || 'No query provided',
        limit: Number.isNaN(parsedLimit) ? 10 : parsedLimit,
        results: [`Result for "${q}"`]
    });
});

// 7. POST request example
app.use(express.json());

app.post('/api/hello', (req, res) => {
    const { name, message } = req.body;
    res.json({
        greeting: `Hello, ${name || 'World'}!`,
        message: message || 'Welcome to Express.js',
        receivedAt: new Date().toISOString()
    });
});

// 8. Error handling middleware
app.use((err, req, res, next) => {
    console.error(err.stack);
    res.status(500).send('Something broke!');
});

// 9. 404 handler
app.use((req, res) => {
    res.status(404).send('Page not found');
});
QuellcodejavascriptMittel

Express Middleware Beispiele

Benutzerdefiniertes und integriertes Express Middleware für Logging, Authentifizierung und Request-Verarbeitung

Schwierigkeit

6/10

Geschätzte Zeit

25 min

Schlagwörter

express, middleware, authentication, cors

Voraussetzungen

Express basics, Node.js

javascript
// Express Middleware Examples

const express = require('express');
const app = express();
const port = 3000;

// 1. Built-in middleware
app.use(express.json()); // Parse JSON bodies
app.use(express.urlencoded({ extended: true })); // Parse URL-encoded bodies
app.use(express.static('public')); // Serve static files

// 2. Custom logging middleware
const requestLogger = (req, res, next) => {
    const timestamp = new Date().toISOString();
    const method = req.method;
    const url = req.url;
    const ip = req.ip || req.connection.remoteAddress;

    console.log(`[${timestamp}] ${method} ${url} - IP: ${ip}`);
    next();
};

// 3. Request time middleware
const requestTime = (req, res, next) => {
    req.requestTime = new Date();
    next();
};

// 4. Authentication middleware
const authenticate = (req, res, next) => {
    const authToken = req.headers.authorization;

    if (!authToken || authToken !== 'Bearer my-secret-token') {
        return res.status(401).json({ error: 'Unauthorized' });
    }

    req.user = { id: 1, name: 'John Doe', role: 'user' };
    next();
};

// 5. Role-based access middleware
const requireRole = (role) => {
    return (req, res, next) => {
        if (!req.user || req.user.role !== role) {
            return res.status(403).json({ error: 'Forbidden - Insufficient permissions' });
        }
        next();
    };
};

// 6. Rate limiting middleware
const rateLimiter = (maxRequests = 100, windowMs = 60000) => {
    const requests = new Map();

    return (req, res, next) => {
        const ip = req.ip;
        const now = Date.now();
        const windowStart = now - windowMs;

        if (!requests.has(ip)) {
            requests.set(ip, []);
        }

        const ipRequests = requests.get(ip).filter(time => time > windowStart);

        if (ipRequests.length >= maxRequests) {
            return res.status(429).json({ error: 'Too many requests' });
        }

        ipRequests.push(now);
        requests.set(ip, ipRequests);
        next();
    };
};

// 7. CORS middleware
const cors = (req, res, next) => {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
    res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization');

    if (req.method === 'OPTIONS') {
        res.sendStatus(200);
    } else {
        next();
    }
};

// 8. Validation middleware
const validateUser = (req, res, next) => {
    const { name, email } = req.body;

    if (!name || name.length < 2) {
        return res.status(400).json({ error: 'Name must be at least 2 characters long' });
    }

    if (!email || !email.includes('@')) {
        return res.status(400).json({ error: 'Valid email is required' });
    }

    next();
};

// 9. Error handling middleware
const errorHandler = (err, req, res, next) => {
    console.error('Error:', err.stack);

    if (err.type === 'ValidationError') {
        return res.status(400).json({ error: err.message });
    }

    res.status(500).json({
        error: 'Internal server error',
        timestamp: new Date().toISOString()
    });
};

// Apply middleware globally
app.use(requestLogger);
app.use(requestTime);
app.use(cors);
app.use(rateLimiter());

// Routes with middleware
app.get('/', (req, res) => {
    res.json({
        message: 'Hello from Express!',
        requestTime: req.requestTime,
        timestamp: new Date().toISOString()
    });
});

app.get('/protected', authenticate, (req, res) => {
    res.json({
        message: 'This is a protected route',
        user: req.user
    });
});

app.get('/admin', authenticate, requireRole('admin'), (req, res) => {
    res.json({
        message: 'Admin dashboard',
        user: req.user
    });
});

app.post('/users', validateUser, (req, res) => {
    const { name, email } = req.body;
    res.status(201).json({
        message: 'User created successfully',
        user: { id: Date.now(), name, email }
    });
});

// Route that triggers an error
app.get('/error', (req, res, next) => {
    const error = new Error('Something went wrong!');
    error.type = 'CustomError';
    next(error);
});

// Apply error handling middleware
app.use(errorHandler);

app.listen(port, () => {
    console.log(`Server running at http://localhost:${port}`);
});
QuellcodejavascriptMittel

Express REST API Beispiele

Vollständige REST-API mit CRUD-Operationen, korrekten HTTP-Statuscodes und Fehlerbehandlung

Schwierigkeit

7/10

Geschätzte Zeit

30 min

Schlagwörter

express, rest, api, crud

Voraussetzungen

Express basics, HTTP methods, JSON

javascript
// Express REST API Examples

const express = require('express');
const app = express();
const port = 3000;

// Middleware
app.use(express.json());

// In-memory data store (for demonstration)
let users = [
    { id: 1, name: 'John Doe', email: 'john@example.com', age: 30 },
    { id: 2, name: 'Jane Smith', email: 'jane@example.com', age: 25 },
    { id: 3, name: 'Bob Johnson', email: 'bob@example.com', age: 35 }
];

let nextId = 4;

// Helper functions
const getUserById = (id) => users.find(user => user.id === parseInt(id));
const updateUserById = (id, updates) => {
    const index = users.findIndex(user => user.id === parseInt(id));
    if (index !== -1) {
        users[index] = { ...users[index], ...updates };
        return users[index];
    }
    return null;
};
const deleteUserById = (id) => {
    const index = users.findIndex(user => user.id === parseInt(id));
    if (index !== -1) {
        const deletedUser = users.splice(index, 1)[0];
        return deletedUser;
    }
    return null;
};

// Validation middleware
const validateUser = (req, res, next) => {
    const { name, email, age } = req.body;
    const errors = [];

    if (!name || name.trim().length < 2) {
        errors.push('Name must be at least 2 characters long');
    }

    if (!email || !email.includes('@')) {
        errors.push('Valid email is required');
    }

    if (age !== undefined && (isNaN(age) || age < 0 || age > 150)) {
        errors.push('Age must be a valid number between 0 and 150');
    }

    if (errors.length > 0) {
        return res.status(400).json({
            error: 'Validation failed',
            details: errors
        });
    }

    next();
};

// REST API Routes

// 1. GET /api/users - Get all users
app.get('/api/users', (req, res) => {
    const { page = 1, limit = 10, sort = 'id' } = req.query;
    const pageNumber = Number.parseInt(String(page), 10) || 1;
    const limitNumber = Number.parseInt(String(limit), 10) || 10;

    let filteredUsers = [...users];

    // Sorting
    filteredUsers.sort((a, b) => {
        if (a[sort] < b[sort]) return -1;
        if (a[sort] > b[sort]) return 1;
        return 0;
    });

    // Pagination
    const startIndex = (pageNumber - 1) * limitNumber;
    const endIndex = pageNumber * limitNumber;
    const paginatedUsers = filteredUsers.slice(startIndex, endIndex);

    res.json({
        users: paginatedUsers,
        pagination: {
            page: pageNumber,
            limit: limitNumber,
            total: users.length,
            pages: Math.ceil(users.length / limitNumber)
        }
    });
});

// 2. GET /api/users/:id - Get user by ID
app.get('/api/users/:id', (req, res) => {
    const user = getUserById(req.params.id);

    if (!user) {
        return res.status(404).json({
            error: 'User not found',
            message: `User with ID ${req.params.id} does not exist`
        });
    }

    res.json(user);
});

// 3. POST /api/users - Create new user
app.post('/api/users', validateUser, (req, res) => {
    const { name, email, age } = req.body;

    // Check if email already exists
    const existingUser = users.find(user => user.email === email);
    if (existingUser) {
        return res.status(409).json({
            error: 'Email already exists',
            message: 'A user with this email already exists'
        });
    }

    const newUser = {
        id: nextId++,
        name: name.trim(),
        email: email.trim().toLowerCase(),
        age: age ? parseInt(age) : null,
        createdAt: new Date().toISOString()
    };

    users.push(newUser);

    res.status(201).json({
        message: 'User created successfully',
        user: newUser
    });
});

// 4. PUT /api/users/:id - Update user completely
app.put('/api/users/:id', validateUser, (req, res) => {
    const { name, email, age } = req.body;

    const existingUser = getUserById(req.params.id);
    if (!existingUser) {
        return res.status(404).json({
            error: 'User not found',
            message: `User with ID ${req.params.id} does not exist`
        });
    }

    // Check if email already exists for another user
    const emailUser = users.find(user => user.email === email.trim().toLowerCase() && user.id !== parseInt(req.params.id));
    if (emailUser) {
        return res.status(409).json({
            error: 'Email already exists',
            message: 'Another user with this email already exists'
        });
    }

    const updatedUser = updateUserById(req.params.id, {
        name: name.trim(),
        email: email.trim().toLowerCase(),
        age: age ? parseInt(age) : null,
        updatedAt: new Date().toISOString()
    });

    res.json({
        message: 'User updated successfully',
        user: updatedUser
    });
});

// 5. PATCH /api/users/:id - Update user partially
app.patch('/api/users/:id', (req, res) => {
    const updates = req.body;

    const existingUser = getUserById(req.params.id);
    if (!existingUser) {
        return res.status(404).json({
            error: 'User not found',
            message: `User with ID ${req.params.id} does not exist`
        });
    }

    // Validate email if provided
    if (updates.email) {
        if (!updates.email.includes('@')) {
            return res.status(400).json({
                error: 'Validation failed',
                details: ['Valid email is required']
            });
        }

        const emailUser = users.find(user => user.email === updates.email.trim().toLowerCase() && user.id !== parseInt(req.params.id));
        if (emailUser) {
            return res.status(409).json({
                error: 'Email already exists',
                message: 'Another user with this email already exists'
            });
        }
    }

    const updatedUser = updateUserById(req.params.id, {
        ...updates,
        updatedAt: new Date().toISOString()
    });

    res.json({
        message: 'User updated successfully',
        user: updatedUser
    });
});

// 6. DELETE /api/users/:id - Delete user
app.delete('/api/users/:id', (req, res) => {
    const deletedUser = deleteUserById(req.params.id);

    if (!deletedUser) {
        return res.status(404).json({
            error: 'User not found',
            message: `User with ID ${req.params.id} does not exist`
        });
    }

    res.json({
        message: 'User deleted successfully',
        user: deletedUser
    });
});

// 7. GET /api/search/users - Search users
app.get('/api/search/users', (req, res) => {
    const { q, field = 'name' } = req.query;

    if (!q) {
        return res.status(400).json({
            error: 'Query parameter is required',
            message: 'Please provide a search term using the "q" parameter'
        });
    }

    const searchResults = users.filter(user => {
        const searchField = user[field];
        return searchField && searchField.toString().toLowerCase().includes(q.toLowerCase());
    });

    res.json({
        query: q,
        field,
        results: searchResults,
        count: searchResults.length
    });
});

// 8. GET /api/stats/users - User statistics
app.get('/api/stats/users', (req, res) => {
    const totalUsers = users.length;
    const averageAge = users.reduce((sum, user) => sum + (user.age || 0), 0) / totalUsers;
    const ageGroups = {
        '18-25': users.filter(user => user.age >= 18 && user.age <= 25).length,
        '26-35': users.filter(user => user.age >= 26 && user.age <= 35).length,
        '36-45': users.filter(user => user.age >= 36 && user.age <= 45).length,
        '46+': users.filter(user => user.age >= 46).length
    };

    res.json({
        totalUsers,
        averageAge: Math.round(averageAge * 100) / 100,
        ageGroups,
        lastUpdated: new Date().toISOString()
    });
});

// Error handling middleware
app.use((err, req, res, next) => {
    console.error('Error:', err.stack);
    res.status(500).json({
        error: 'Internal server error',
        message: 'An unexpected error occurred'
    });
});

// 404 handler
app.use('*', (req, res) => {
    res.status(404).json({
        error: 'Route not found',
        message: `Route ${req.originalUrl} does not exist`
    });
});

app.listen(port, () => {
    console.log(`REST API server running at http://localhost:${port}`);
    console.log('Available endpoints:');
    console.log('  GET    /api/users');
    console.log('  GET    /api/users/:id');
    console.log('  POST   /api/users');
    console.log('  PUT    /api/users/:id');
    console.log('  PATCH  /api/users/:id');
    console.log('  DELETE /api/users/:id');
    console.log('  GET    /api/search/users');
    console.log('  GET    /api/stats/users');
});

Werkzeuge

Tools, die oft mit diesem Beispiel genutzt werden

Verwandt

Verwandte Beispielsammlungen

Verwandt

Verwandte Themen

Thema

JSON Schema aus Beispielen und Tabellen ableiten

Leiten Sie aus repräsentativen JSON-Beispielen oder XLSX-Zeilen einen prüfbaren JSON-Schema-Entwurf ab und kontrollieren Sie Typen, Pflichtfelder, Nullwerte und Ausreißer, bevor er als Vertrag dient.

Thema

Observability-Debugging mit Logs, Traces, Webhooks und JSON-Payloads

Parsen Sie Logs, decodieren Sie Traces, pruefen Sie Webhook/API-Belege, erkunden Sie JSON-Payloads und extrahieren Sie Muster vor der Incident-Notiz.

Thema

JSON-Feldextraktion, Transformation und Datenherkunft

Extrahieren Sie JSON-Felder über Pfade, formen Sie das Payload mit JSONata um und dokumentieren Sie die Herkunft jedes Feldes, ohne fachliche Semantik zu versprechen.

Thema

Workflow zur JSON-Normalisierung und Datenuebergabe

Ueberfuehren Sie eine strukturierte Quelle in eine gepruefte JSON-Darstellung und exportieren Sie genau die Tabelle, Konfiguration, Dokument-, API-, XML-, CSON-, EDN-, BSON- oder UBJSON-Form, die nachgelagert benoetigt wird.

Start
Werkzeuge3212
Workbench
Beispiele593
Visualisierungen471
Dateibetrachter103
Themen239
Schlagwörter333
Bilder, Audio & Video657

Werkzeuge für Bild-, Audio- und Videobearbeitung, Konvertierung und Optimierung

Mathe, Datum & Finanzen647

Rechner, Zahlenwerkzeuge, Datumslogik, Statistik und Finanztools

Design & Farbe298

Werkzeuge für Farben, Layouts, Grafiken, visuelle Gestaltung und Designhilfen

Text & Schreiben209

Werkzeuge für Schreiben, Bereinigung, Formatierung, Extraktion und Textanalyse

Entwicklung & Web193

Entwicklerwerkzeuge, Netzwerk-Utilities, Web-Debugging und Automatisierungshelfer

Konvertierung & Kodierung175

Werkzeuge für Format-, Datei-, Archiv-, Einheiten- und Kodierungskonvertierung

Lead-Quiz veröffentlichen und Kontakte sicher übergeben
Gedenktexte: Familienprüfung und Übergabe zum Druck
Private Gewohnheiten: Sicherung, Wiederherstellung und Freigabeprüfung
Vom Artikel zu X- und LinkedIn-Entwürfen: Faktenprüfung und Übergabe
Interaktive Markdown-Lektion prüfen und offline übergeben

© 2026 Elysia Tools. Alle Rechte vorbehalten.

DokumentationTarifeÜber unsNutzungsbedingungenDatenschutzerklärungCookiesKontakt

Development

Data-URI-Generator

Konvertiert Dateien in Data URIs (Base64 oder prozent-kodiert), um Bilder, Schriftarten und Ressourcen direkt in HTML, CSS oder Markdown einzubetten

Media

Akkordfolgen-Detektor

Schätzt lokal die Akkorde einer Audiodatei und bündelt CSV, JSON, SVG und Methodennotizen in einer ZIP-Datei.

Media

Audio-Melodiekontur-Extraktor

Extrahiert die dominante Melodie und bündelt MIDI, Notenereignisse, Tonhöhenkontur, SVG und JSON in einer ZIP-Datei.

Media

AAC-zu-OGG-Konverter

Konvertiert AAC-Audiodateien in das OGG Vorbis-Format mit Qualitäts- und Kanalsteuerung

Media

Batch-Audio-Konverter

Konvertieren Sie mehrere Audiodateien zwischen verschiedenen Formaten wie MP3, WAV, FLAC, AAC, OGG, Opus mit Qualitätseinstellungen und Stapelverarbeitung

Media

Podcast-Paket für die Batch-Veröffentlichung

Normalisiert Episoden, ergänzt Metadaten und Kapitel und erstellt ein lieferfertiges ZIP.

Media

Audio-Bitrate ändern

Audio mit neuer Bitrate neu kodieren, Format beibehalten

Media

Audiokanäle anpassen

Kanäle ändern (Mono/Stereo), Format beibehalten

DevOps

ELK Stack Log-Analyse Beispiele

Umfassende ELK Stack Beispiele für Log-Aggregation, -Verarbeitung und -Visualisierung in verteilten Systemen

Überwachung & Observability

Datadog Monitoring Beispiele

Umfassende Datadog Monitoring und Observability Konfigurationsbeispiele einschließlich APM, Logs, Metriken und Dashboards

Fehlerüberwachung

Sentry Error Tracking Beispiele

Umfassende Sentry Error Tracking und Performance Monitoring Setup mit SDK-Integrationen für verschiedene Plattformen

Web-Frameworks

Hono Beispiele

Ultra-schnelle Hono Web-Framework-Beispiele einschließlich Routing, Middleware und Deployment

Kotlin

Android Kotlin Web-Funktionsbeispiele

Android Kotlin Web-Funktionsbeispiele einschließlich URL-Routing, Middleware-Verarbeitung und Bereitstellung statischer Dateien

Objective-C

Web-Funktionen macOS Objective-C - Beispiele

macOS Objective-C Web-Funktionsbeispiele einschließlich URL-Routing, Middleware und statische Dateien