Aller au contenu

Node.js

// server.ts
import { nodeAdapter } from 'lacis/adapters'
const createServer = nodeAdapter.createHandler('./routes')
createServer({
port: 3000,
isDev: process.env.NODE_ENV !== 'production',
})
OptionTypeDéfautDescription
portnumber3000Port d’écoute
isDevbooleanfalseActive le mode développement
defaultHeadersRecord<string, string>Headers ajoutés à chaque réponse
httpsOptionsobjectConfiguration TLS
clusterobjectClustering multi-processus
monitoringobject{ enabled: false }Monitoring de performances en dev
corsCorsConfigPolitique CORS
middlewareobjectHooks beforeRequest, afterRequest, onError
hooksobjectHooks onNotFound, onShutdown
  1. Compilez votre TypeScript :

    Fenêtre de terminal
    npm run build
  2. Démarrez le serveur :

    Fenêtre de terminal
    node dist/server.js
  3. Utilisez un gestionnaire de processus pour la résilience :

    Fenêtre de terminal
    pm2 start dist/server.js --name my-api
import { readFileSync } from 'fs'
import { nodeAdapter } from 'lacis/adapters'
const createServer = nodeAdapter.createHandler('./routes')
createServer({
port: 443,
httpsOptions: {
cert: readFileSync('./certs/cert.pem'),
key: readFileSync('./certs/key.pem'),
},
})

Utilise le module cluster natif de Node. Le processus principal gère les workers et relance ceux qui plantent.

createServer({
port: 3000,
cluster: {
enabled: true,
workers: 4, // défaut : os.cpus().length
},
})

Quand isDev: true et monitoring.enabled: true, un endpoint /health retourne des métriques de performance en temps réel :

createServer({
isDev: true,
monitoring: {
enabled: true,
sampleInterval: 5000,
reportInterval: 60000,
thresholds: { cpu: 80, memory: 512, responseTime: 500, errorRate: 5 },
},
})