Mon nœud Code ne transmet que le premier élément quand une API retourne plusieurs éléments. Il n’y a pas d’erreurs. Comment puis-je faire en sorte qu’il transmette tout ?
Décrivez le problème/l’erreur/la question
Quel est le message d’erreur (le cas échéant) ?
Veuillez partager votre workflow
(Sélectionnez les nœuds sur votre canevas et utilisez les raccourcis clavier CMD+C/CTRL+C et CMD+V/CTRL+V pour copier et coller le workflow.)
Le code ne lit probablement qu’un seul élément. En mode « Exécuter une fois pour tous les éléments », $input.first() ou items[0] récupère uniquement le premier élément, et retourner un seul objet vous donne un élément de sortie. Parcourez-les tous et retournez un tableau :
L’autre option consiste à définir le Mode sur « Exécuter une fois pour chaque élément », utiliser $input.item.json et retourner un objet. n8n exécute ensuite le code une fois par élément.
Vérifiez également la sortie du nœud précédent. S’il affiche « 1 élément » et que les résultats se trouvent dans un tableau à l’intérieur (courant avec HTTP Request, par exemple dans un champ data), il n’y a qu’un seul élément au départ. Divisez-le avec un nœud Split Out sur ce champ, ou dans le nœud Code :
return $input.first().json.data.map(d => ({ json: d }));
Si aucune de ces solutions ne correspond, collez le code de votre nœud Code et le nombre d’éléments affiché sur la sortie du nœud précédent.
Si le nœud Code est défini sur Exécuter une fois pour tous les éléments, utilisez $input.all() pour accéder à chaque élément entrant. Traitez-les ensuite avec .map() et renvoyez le tableau résultant. Renvoyer un seul objet fera en sorte que n8n ne produise qu’un seul élément de sortie.
C’est le mode classique « premier élément uniquement ». Votre nœud Code est configuré pour « Run Once for First Item », il s’exécute donc uniquement avec items[0]. La solution :
Ouvrez le nœud Code et réglez Mode sur « Run Once for All Items ». Ensuite $input.all() contient tout, et votre retour doit être le tableau complet :
return $input.all();
Si vous transformez par élément, itérez explicitement et construisez le tableau de sortie vous-même - ne comptez jamais sur la boucle automatique du nœud en mode premier élément, cela ne fonctionnera pas.
Modèle mental rapide : Run Once for All Items = le nœud s’exécute UNE fois avec le tableau complet (idéal pour les agrégations et la pagination d’API). Run Once for Each Item = s’exécute N fois (idéal pour les transformations par élément). First Item n’est presque jamais ce que vous voulez. J’espère que cela vous débloquer - et si vous continuez à rencontrer ces problèmes n8n lors de la création de workflows clients, c’est littéralement mon travail au quotidien, je serais ravi de vous aider à un moment donné.