Mon nœud HTTP/API produit plusieurs éléments, mais après que ces éléments passent par mon nœud Code, la sortie ne contient qu'un seul élément

Mon nœud HTTP/API produit plusieurs éléments, mais après que ces éléments passent par mon nœud Code, la sortie ne contient qu’un seul élément. J’utilise le nœud Code pour supprimer les champs inutiles et préparer la réponse pour un autre nœud

Décrivez le problème/l’erreur/la question

Il n’y a pas d’erreur d’exécution, mais le nombre d’éléments passe de plusieurs éléments à un seul. Comment le nœud Code doit-il être écrit pour que chaque élément entrant soit traité et renvoyé

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.)

Partagez la sortie renvoyée par le dernier nœud

Informations sur votre configuration n8n

  • Version de n8n : 1.123.x
  • Base de données (par défaut : SQLite) :
  • Paramètre n8n EXECUTIONS_PROCESS (par défaut : own, main) :
  • Exécution de n8n via (Docker, npm, n8n cloud, application de bureau) : docker JavaScript
  • Système d’exploitation :

Salut @Debby_Emupene, en attendant une réponse, voici quelques ressources qui pourraient t’aider :

Ressources suggérées

Automatiquement associées à ta question.

Documentation :

Forum :

@Joy_Ful - tu as déjà aidé avec des problèmes similaires, tu pourrais jeter un œil ?

Automatiquement suggéré par le bot communautaire de n8n. C’est un projet pilote - partage tes commentaires ici.

@Debby_Emupene Bonjour !

Le nœud de code s’exécute par défaut une seule fois pour tous les éléments. Dans ce cas, le code s’exécute une seule fois pour tout le lot.

  1. Gardez le nœud et parcourez chaque élément comme ceci -

return $input.all().map(item => ({
json: {
id: item.json.id,
name: item.json.name,
// ne conservez que les champs dont vous avez besoin
}
}));

  1. Au lieu de 1., changez le mode pour s’exécuter une fois pour chaque élément,

return {
json: {
id: $json.id,
name: $json.name,
}
};

Bonjour @Debby_Emupene

Lorsque vous utilisez Exécuter une fois pour tous les éléments, le nœud Code reçoit la collection complète et $input.all() retourne tous les éléments entrants. Vous devez transformer cette collection et retourner le tableau transformé.
Par exemple :

const inputItems = $input.all();

const outputItems = inputItems.map(item => ({
json: {
name: item.json.name,
email: item.json.email
}
}));

return outputItems;

Le point important est que return reçoit un tableau d’éléments n8n, plutôt qu’un seul élément individuel. Cela permet au nœud suivant de recevoir chaque enregistrement API traité.