Express.js
Overzicht
Express.js is een snel, ongedwongen en minimalistisch webframework voor Node.js. Het biedt robuuste functies voor het bouwen van webapplicaties en REST API's met een focus op eenvoud en flexibiliteit.
Snelstart
Repository aanmaken vanuit sjabloon
Ga in je dashboard naar het tabblad Tools & Deployment. Klik op de knop "New Repository", selecteer het Express-sjabloon uit het dropdownmenu, voer een repository-naam en subdomein in en klik vervolgens op "Create Repository".
Je repository klonen
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Afhankelijkheden installeren
npm install
Ontwikkelingsserver starten
npm run dev
De server draait standaard op http://localhost:3000.
Je wijzigingen pushen
git add .
git commit -m "Initial setup"
git push origin main
Lokale ontwikkeling met Docker
Als je geen Node.js lokaal hebt geïnstalleerd, kun je Docker gebruiken om Express-commando's uit te voeren.
Commando's uitvoeren met Docker
# Run npm install
docker run --rm -v $(pwd):/app -w /app node:lts npm install
# Run development server
docker run --rm -v $(pwd):/app -w /app -p 3000:3000 node:lts npm run dev
Projectstructuur
├── src/
│ ├── controllers/ # Request-handlers
│ ├── middleware/ # Aangepaste middleware
│ ├── models/ # Databasemodellen
│ ├── routes/ # Route-definities
│ └── server.js # Express app-setup
├── views/ # EJS-templatebestanden
├── public/ # Statische bestanden
├── prisma/ # Prisma-schema
├── package.json # Afhankelijkheden
└── Dockerfile # Docker-configuratie
Veelvoorkomende taken
Een route aanmaken
const express = require('express');
const router = express.Router();
router.get('/users', (req, res) => {
res.json({ message: 'Get all users' });
});
module.exports = router;
Prisma ORM gebruiken
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
const users = await prisma.user.findMany();
const user = await prisma.user.create({
data: { name: 'John', email: 'john@example.com' }
});
Handige commando's
npm run dev
Dev-server starten met nodemon
npm start
Productieserver starten
npx prisma migrate dev
Prisma-migraties uitvoeren
Probleemoplossing
Database connection failed
Oplossing: Controleer DATABASE_URL in het .env-bestand. Formaat: mysql://user:password@host:port/database
Port 3000 already in use
Oplossing: Wijzig PORT in het .env-bestand of stop het andere proces.