Configuration
L’objet ServerConfig est passé comme second argument à createServer (pour Node/Bun) ou dans ServerlessConfig (pour Vercel/Netlify).
Options de premier niveau
Section intitulée « Options de premier niveau »| Option | Type | Défaut | Description |
|---|---|---|---|
port | number | 3000 | Port d’écoute |
platform | 'node' | 'bun' | 'vercel' | 'netlify' | 'node' | Plateforme cible |
isDev | boolean | NODE_ENV === 'development' | Active le mode dev (erreurs détaillées, monitoring) |
timeout | number | 30000 | Timeout de requête en millisecondes |
defaultHeaders | Record<string, string> | — | Headers ajoutés à chaque réponse |
httpsOptions
Section intitulée « httpsOptions »Configuration TLS pour HTTPS (Node.js uniquement).
httpsOptions: { cert: readFileSync('./certs/cert.pem'), key: readFileSync('./certs/key.pem'),}Voir la page CORS pour toutes les options.
cors: { origin: 'https://monapp.com', credentials: true, maxAge: 86400,}middleware
Section intitulée « middleware »Middleware global appliqué à chaque requête.
middleware: { beforeRequest: async (req, res) => { /* ... */ }, afterRequest: async (req, res) => { /* ... */ }, onError: async (req, res, ctx) => { /* ... */ },}Chaque propriété accepte un handler unique ou un tableau de handlers.
Hooks de cycle de vie du serveur.
hooks: { onNotFound: async (req, res) => { res.status(404).json({ error: 'Non trouvé' }) }, onShutdown: async () => { await db.end() },}| Hook | Quand il s’exécute |
|---|---|
onNotFound | Aucune route ne correspond à la requête |
onShutdown | Réception de SIGINT, SIGTERM ou SIGHUP |
Clustering multi-processus (Node.js et Bun).
cluster: { enabled: false, // défaut workers: undefined, // défaut : os.cpus().length}monitoring
Section intitulée « monitoring »Monitoring de performances en développement (Node.js uniquement, nécessite isDev: true).
monitoring: { enabled: false, // défaut sampleInterval: 5000, // ms entre les échantillons reportInterval: 60000, // ms entre les rapports console thresholds: { cpu: 80, // % — déclenche une alerte memory: 512, // Mo responseTime: 500, // ms errorRate: 5, // % },}Quand activé, un endpoint /health retourne les métriques en temps réel en JSON.
Manifest de routes pré-compilé (plateformes serverless uniquement). Généré par lacis build.
import { routes, middlewares } from './routes/_manifest.js'
// Passé à vercelAdapter ou netlifyAdaptervercelAdapter.createHandler({ routes, middlewares })Génération de la spec OpenAPI.
openapi: { path: '/openapi.json', info: { title: 'Mon API', version: '1.0.0', description: 'Description optionnelle.', },}