Przejdź do treści
Workin'FlowsBlog → Python czy JavaScript w węźle Code n8n
python

Python czy JavaScript w węźle Code n8n: kiedy sięgam po który

Adrian Krawczyk opublikowane ostatnia aktualizacja 5 min czytania

Workflow n8n zbudowany na węzłach Code: routing i formatowanie danych
Mały pipeline oparty o węzły Code. Routing i formatowanie robię w kodzie, bo to czytelniejsze niż łańcuch dziesięciu węzłów no-code.

n8n domyślnie kusi JavaScriptem i w dziewięciu na dziesięć przypadków słusznie. Ale czasem przełączam węzeł Code na Pythona i oszczędzam sobie godziny walki ze składnią. Pokazuję, kiedy to nie fanaberia, tylko zdrowy rozsądek.

Domyślnie JavaScript i to nie przypadek

W węźle Code n8n domyślnie wybieram JavaScript. Nie z sentymentu, tylko dlatego, że jest natywny dla całego narzędzia. Masz pełny dostęp do helperów n8n, do danych z poprzednich węzłów przez $json i $node, świetnie ogarnia JSON, a w większości automatyzacji przerzucasz właśnie JSON z miejsca w miejsce.

Tak naprawdę w dziewięciu na dziesięć węzłów Code, które piszę, JavaScript jest oczywistym wyborem. Filtrowanie tablicy, mapowanie pól, sklejenie odpowiedzi z dwóch węzłów, drobna logika warunkowa. Do tego nie potrzebujesz Pythona i sięganie po niego byłoby sztuką dla sztuki.

Panel węzła Code w n8n z językiem JavaScript i widocznym dropdownem wyboru języka
Węzeł Code domyślnie na JavaScript. Ten dropdown Language to całe przełączenie na Pythona, tylko w tym workflow zostaję przy JS, bo nie potrzebuję bibliotek Pythona.

Kiedy przełączam na Pythona

Po Pythona sięgam wtedy, gdy zadanie mocno opiera się o jego bibliotekę standardową. Najczęściej w tych sytuacjach:

To nie jest tak, że Python jest lepszy. On jest wygodniejszy do tej konkretnej klasy zadań. A wygoda przy debugowaniu o dwudziestej drugiej to realna wartość, nie kosmetyka.

Nie wybieram języka, który lubię. Wybieram ten, w którym to konkretne zadanie napiszę raz i nie wrócę do niego z błędem.

Pułapki Pythona w węźle Code

Zanim przełączysz tryb na Pythona, dwie rzeczy, na które wpadłem i Ty też wpadniesz, jeśli nikt Cię nie ostrzeże.

Inna składnia dostępu do danych. W Pythonie nie ma dolara. Dane czytasz przez _input, _json i _node, czyli z podkreślnikiem zamiast znaku dolara. Pierwsze pół godziny z Pythonem w n8n to zwykle wojna z tym jednym znakiem.

Sandbox i brak swobodnego pip. W środowisku uruchomieniowym n8n masz przede wszystkim bibliotekę standardową. Nie zakładaj, że dorzucisz dowolną paczkę z pip jak w lokalnym projekcie. Jeśli zadanie wymaga ciężkich zewnętrznych bibliotek, to sygnał, że robota powinna trafić do osobnego mikroserwisu, a nie do węzła Code.

Ważne Wywołania HTTP, połączenia z bazą i integracje zostawiam dedykowanym węzłom n8n (HTTP Request, Postgres), a nie kodowi w Pythonie. Węzeł Code służy u mnie do transformacji danych, nie do robienia z niego drugiego backendu w środku workflow.

Prosta zasada na koniec

JavaScript jako domyślny, Python jako narzędzie pod konkretne zadanie z biblioteki standardowej. Jeśli łapiesz się na tym, że w JS przepisujesz po raz trzeci coś, co re albo hashlib robi w jednej linii, przełącz tryb. A jeśli kusi Cię, żeby w węźle Code zbudować pół aplikacji, to nie jest moment na Pythona, tylko na osobny serwis.

Najczęstsze pytania

Czy w węźle Code n8n lepszy jest Python czy JavaScript?

W większości przypadków JavaScript, bo jest natywny dla n8n, ma pełny dostęp do helperów i działa szybciej. Python wybieram, gdy zadanie mocno korzysta z biblioteki standardowej: regex, hashlib, statistics, datetime, przetwarzanie tekstu. To wybór pod konkretne zadanie, nie religia.

Jakie są ograniczenia Pythona w węźle Code n8n?

Najważniejsze: w trybie sandbox masz głównie bibliotekę standardową, bez swobodnego instalowania paczek przez pip. Składnia dostępu do danych jest inna niż w JS (podkreślnik zamiast dolara, czyli _input i _json), a niektóre operacje jak wywołania HTTP wygodniej zrobić osobnym węzłem HTTP Request niż w kodzie.

Masz workflow, który walczy ze składnią?

U Ciebie zaczynam od warsztatu procesu (90 minut, bezpłatny). Przejdziemy przez Twój przepływ i powiem wprost, gdzie kod pomaga, a gdzie tylko komplikuje. Bez wciskania jednego słusznego stacku.

Zamów warsztat → Lub napisz bezpośrednio.
Nota o procesie: Szkic artykułu powstał z udziałem agenta AI w ramach Workin'Agency. Redakcja merytoryczna, weryfikacja techniczna i zatwierdzenie: Adrian Krawczyk. (AI Act, Art. 50)