Retour à la leçon
Mission

Mission : exporter un CSV de 3 millions de lignes sans faire planter le serveur

Remplacer un traitement readFile qui sature la mémoire par une chaîne de streams robuste avec pipeline(), et corriger un Transform custom qui bloque le flux.

Contexte

Un endpoint d'export utilise actuellement const content = await readFile('./export.csv', 'utf-8') avant de filtrer les lignes actives et de compresser le résultat. Sur un fichier de test de 3 millions de lignes (environ 1,5 Go), le processus Node consomme plus de 4 Go de RAM et finit par crasher avec JavaScript heap out of memory. Un collègue a commencé à réécrire un Transform custom pour filtrer les lignes, mais le flux reste bloqué indéfiniment après le premier chunk.