ساخت Node سفارشی در n8n یکی از قدرتمندترین قابلیتهای این پلتفرم اتوماسیون است که به توسعهدهندگان امکان میدهد تا عملکردهای خاص خود را به اکوسیستم n8n اضافه کنند.
این قابلیت به شما اجازه میدهد تا با استفاده از TypeScript و JavaScript، نودهای کاملاً شخصیسازی شده ایجاد کنید که دقیقاً با نیازهای کسبوکار شما هماهنگ باشند.
اهمیت ساخت n8n Custom Node در این است که میتوانید بدون محدودیت به نودهای پیشفرض، قابلیتهای کاملاً جدیدی به پلتفرم اضافه کنید.
این امر به ویژه برای سازمانهایی که نیاز به یکپارچهسازی با سیستمهای داخلی دارند، حیاتی است. با استفاده از n8n Node Development، میتوانید نودهایی ایجاد کنید که مستقیماً با APIهای اختصاصی شما ارتباط برقرار کنند.
برای توسعهدهندگان، n8n محیط کاملی برای n8n برنامه نویسی Node فراهم میکند که شامل پشتیبانی از TypeScript، npm packages و حتی اجرای کد Python میشود.
این انعطافپذیری باعث میشود n8n به یک انتخاب ایدهآل برای پروژههای پیچیده اتوماسیون تبدیل شود.
Node سفارشی n8n چیست و چه مزایایی دارد؟
Node سفارشی n8n به توسعهدهندگان این امکان را میدهد که قابلیتهای جدید و اختصاصی را به پلتفرم n8n اضافه کنند.
این ویژگی به سازمانها اجازه میدهد تا با ایجاد n8n Custom Node، سرویسها و APIهای داخلی خود را مستقیماً به اکوسیستم اتوماسیون n8n متصل کنند.
توسعه Nodeهای سفارشی با استفاده از TypeScript انجام میشود و میتواند شامل عملکردهای پیچیدهای باشد که در Nodeهای پیشفرض موجود نیست.
مزایای اصلی استفاده از Nodeهای سفارشی شامل انعطافپذیری بالا، امکان یکپارچهسازی با سیستمهای داخلی سازمان، کاهش وابستگی به سرویسهای خارجی و افزایش امنیت دادهها است.
سازمانها میتوانند با توسعه Nodeهای سفارشی، فرآیندهای کسبوکار خود را به صورت کاملاً سفارشیسازی شده اتوماسیون کنند.
- امکان توسعه قابلیتهای اختصاصی برای نیازهای سازمانی
- یکپارچهسازی مستقیم با APIها و سرویسهای داخلی
- افزایش امنیت با نگهداری دادهها در محیط داخلی
- کاهش هزینههای سرویسهای خارجی
- انعطافپذیری کامل در طراحی و پیادهسازی
- پشتیبانی از Docker برای استقرار آسان
تعریف Node سفارشی در اکوسیستم n8n
Node سفارشی در n8n به توسعهدهندگان این امکان را میدهد که قابلیتهای جدیدی را به پلتفرم اضافه کنند که به صورت پیشفرض وجود ندارند.
این قابلیت برای سازمانهایی که نیاز به اتصال به سرویسهای داخلی یا APIهای اختصاصی دارند، بسیار حیاتی است.
با استفاده از n8n Custom Node میتوانید Nodeهایی ایجاد کنید که به صورت اختصاصی با سیستمهای داخلی سازمان شما ارتباط برقرار کنند.
این Nodeها معمولاً با TypeScript یا Python توسعه داده میشوند و میتوانند در محیطهای self-hosted یا cloud deployment استفاده شوند.
- امکان توسعه Nodeهای اختصاصی برای سرویسهای داخلی سازمان
- پشتیبانی از زبانهای برنامهنویسی TypeScript و Python
- قابلیت نصب npm packages برای افزودن کتابخانههای خارجی
- امکان استفاده در محیطهای Docker و self-hosted
- افزودن قابلیتهای جدید بدون نیاز به تغییر در هسته اصلی n8n
مزایای استفاده از Nodeهای سفارشی
استفاده از n8n Node سفارشی مزایای متعددی برای سازمانها دارد.
این Nodeها اجازهدهند تسلیط کامل بر روی منابع داخلی سازمان را فراهم میکنند و امکان ایجاد اتوماسیون های سازگار با سیستمهای شرکتی را فراهم میکنند.
از جمله مزایای اصلی میتوان به امکان استفاده از npm packages در کد جاوااسکریپت و Python اشاره کرد که از مزایای منحصربهفرد نسخه سفارشی n8n است.
این مزیت اجازهدهد برای استفاده از کتابخانههای سوم در اتوماسیونهای پیچیده را فراهم میکند.
- امکان استفاده از TypeScript برای n8n توسعه Node
- قابلیت Docker deployment برای محیطهای تولید
- استفاده رایگان از نسخه self-hosted
- امکان کاستمایزیسیون کامل UI و اضافه کردن قابلیتهای جدید
- ارائه API های REST برای ایجاد و مدیریت Nodeهای سفارشی
سناریوهای کاربردی نیازمند Node سفارشی
سازمانها برای اتوماسیون فرآیندهای خاص خود نیاز به n8n Node سفارشی پیدا میکنند.
مثلا کسانی که میخواهند یک نود Playwright سفارشی بسازند تا بدون استفاده از APIهای پرداختی از صفحات وب اسکرینش بگیرند یا الگوریتمهای خاص خود را در نظام اجرا کنند.
سناریوهای عملی شامل اتصال به APIهای داخلی سازمان، ایجاد نودهای تخصصی شده برای سرویسهای خاص، و کاهش پیچیدگیهای فنی از کاربردان نهایی است.
این امکان به توسعهدهندگان اجازه میدهد که با استفاده از n8n توسعه Node و npm packages نودهای سفارشی را برای نیازهای خاص خود تطویر دهند.

چه پیشنیازهای فنی برای ساخت Node سفارشی نیاز است؟
برای ساخت n8n Node سفارشی به دانش فنی خاصی نیاز دارید.
ابتدا باید با JavaScript/TypeScript آشنا باشید، چرا که تمام توسعه Nodeها در n8n بر پایه TypeScript انجام میشود.
همچنین نیاز به درک خوبی از مفاهیم Docker دارید، زیرا بسیاری از کاربران n8n را در محیط Docker اجرا میکنند.
ابزارهای توسعه مورد نیاز شامل Node.js و npm برای ساخت و توسعه Nodeها است.
همچنین باید با TypeScript و نحوه کامپایل آن آشنا باشید.
برای محیطهای Docker، نیاز به دانش Docker Compose و ساخت Dockerfile دارید تا بتوانید Nodeهای سفارشی را در محیط کانتینری اجرا کنید.
- تسلط بر JavaScript/TypeScript برای توسعه منطق Nodeها
- آشنایی با Docker و Docker Compose برای اجرا در محیط کانتینری
- نصب Node.js و npm برای مدیریت پکیجها
- دانش TypeScript و نحوه کامپایل کدها
- آشنایی با n8n-workflow پکیج برای توسعه Nodeها
- توانایی کار با ابزارهای خط فرمان برای ساخت و توسعه
دانش مورد نیاز در JavaScript و TypeScript
برای ساخت n8n Node سفارشی، تسلط بر مفاهیم پایهای JavaScript و TypeScript ضروری است.
این شامل آشنایی با مفاهیمی مانند کلاسها، اینترفیسها، ماژولها و سیستم نوعدهی TypeScript میشود.
همچنین باید با مفاهیم n8n Node Development مانند ساختار INodeType و IExecuteFunctions آشنا باشید.
توسعهدهندگان باید بتوانند کد TypeScript را کامپایل کرده و با npm packages کار کنند.
آشنایی با مفاهیم async/await و مدیریت خطاها در JavaScript نیز از ملزومات توسعه Nodeهای سفارشی در n8n محسوب میشود.
آشنایی با مفاهیم Docker و containerization
برای توسعه n8n Node سفارشی، درک مفاهیم Docker و containerization ضروری است.
Docker به شما امکان میدهد محیط توسعه یکپارچهای ایجاد کنید که تضمین میکند کد شما در تمام مراحل توسعه و تولید به صورت یکسان اجرا میشود.
این تکنولوژی با استفاده از کانتینرها، وابستگیهای پروژه را ایزوله کرده و از بروز مشکلات ناسازگاری جلوگیری میکند.
در محیط n8n Custom Node توسعه، Docker نقش کلیدی در بستهبندی و استقرار nodeهای سفارشی ایفا میکند.
با استفاده از Dockerfile میتوانید کانتینری بسازید که شامل تمام وابستگیهای لازم برای node شما باشد.
این رویکرد به ویژه برای توسعهدهندگانی که قصد دارند nodeهای خود را در محیطهای مختلف اجرا کنند بسیار مفید است.
ابزارهای توسعه مورد نیاز (Node.js, npm, TypeScript)
برای ساخت n8n Node سفارشی، نیاز به ابزارهای توسعه خاصی دارید.
ابتدا باید Node.js و npm را نصب کنید، زیرا n8n بر اساس پلتفرم Node.js ساخته شده است.
همچنین به دلیل اینکه توسعه Nodeهای سفارشی در n8n با TypeScript انجام میشود، تسلط به این زبان برنامهنویسی ضروری است.
ابزارهای مورد نیاز شامل موارد زیر است:
- Node.js و npm برای توسعه و ساخت Node سفارشی
- TypeScript برای کدنویسی Nodeهای سفارشی
- Docker و Docker Compose برای اجرای n8n در محیط کانتینریزه
- دانش پایه JavaScript/TypeScript و Docker
- ویرایشگر کد مانند VS Code
- Git برای مدیریت نسخههای کد

چگونه اولین Node سفارشی خود را در n8n ایجاد کنیم؟
برای ساخت اولین Node سفارشی در n8n، ابتدا باید محیط توسعه مناسب را آماده کنید.
این فرآیند شامل نصب Node.js، npm، TypeScript و Docker است.
سپس یک پروژه جدید ایجاد کرده و ساختار فایلهای مورد نیاز را تنظیم میکنید.
ابتدا یک دایرکتوری برای پروژه خود ایجاد کنید و با دستور npm init پروژه Node.js را راهاندازی نمایید.
سپس فایلهای اصلی شامل MyCustomNode.node.ts برای کد اصلی، tsconfig.json برای پیکربندی TypeScript و index.ts برای export کردن Node را ایجاد کنید.
در مرحله بعد، کد Node خود را با استفاده از رابطهای INodeType و INodeTypeDescription بنویسید.
- ایجاد پروژه Node.js با npm init
- نصب وابستگیهای لازم شامل n8n-workflow و TypeScript
- نوشتن کد TypeScript برای Node سفارشی
- کامپایل کد با دستور npm run build
- تنظیم Dockerfile برای اجرای n8n با Node سفارشی
- ایجاد docker-compose.yml برای مدیریت کانتینرها
پس از کامپایل موفق، فایلهای تولید شده در پوشه dist قرار میگیرند.
برای اجرای n8n با Node سفارشی، باید یک Dockerfile ایجاد کرده و پوشه custom_nodes را به مسیر مناسب کپی کنید.
با استفاده از docker-compose میتوانید سرویس n8n را همراه با Node سفارشی راهاندازی نمایید.
راهاندازی پروژه و پیکربندی اولیه
برای شروع ساخت n8n Node سفارشی، ابتدا باید محیط توسعه را آماده کنید.
ابتدا یک دایرکتوری جدید برای پروژه ایجاد کرده و سپس پکیج npm را با دستور npm init -y راهاندازی کنید.
این کار فایل package.json را ایجاد میکند که برای مدیریت وابستگیهای پروژه ضروری است.
در مرحله بعد، باید فایلهای اصلی Node شامل فایل TypeScript اصلی، پیکربندی TypeScript و فایل index برای export کردن Node را ایجاد کنید.
نصب وابستگیهای ضروری مانند @types/node، n8n-workflow و typescript از طریق npm انجام میشود.
پس از نوشتن کد Node، باید آن را با دستور npm run build کامپایل کنید تا فایلهای JavaScript تولید شوند.
ساختار فایلهای اصلی یک Node سفارشی
برای ایجاد یک n8n Node سفارشی، نیاز به ساختار مشخصی از فایلها دارید.
پروژه اصلی شامل پوشه custom-nodes است که در آن فایلهای TypeScript مربوط به Node قرار میگیرند.
این ساختار شامل فایلهای اصلی مانند MyCustomNode.node.ts برای پیادهسازی منطق Node، tsconfig.json برای پیکربندی TypeScript و index.ts برای export کردن Node میباشد.
هر Node سفارشی باید interfaceهای INodeType و INodeTypeDescription را پیادهسازی کند.
فایل package.json نیز برای مدیریت وابستگیها و اسکریپتهای build ضروری است.
پس از کامپایل TypeScript، فایلهای JavaScript در پوشه dist تولید میشوند که توسط n8n لود میشوند.
پیادهسازی توابع اصلی و منطق کسبوکار
پیادهسازی توابع اصلی و منطق کسبوکار در n8n Node سفارشی شامل ایجاد کلاسهای TypeScript است که اینترفیس INodeType را پیادهسازی میکنند.
این کلاسها باید متد execute را تعریف کنند که منطق اصلی پردازش دادهها را انجام میدهد.
در این مرحله، توسعهدهندگان میتوانند از کتابخانههای npm برای افزودن قابلیتهای پیشرفته استفاده کنند.
برای پیادهسازی توابع اصلی، ابتدا باید فایل TypeScript مربوط به Node را ایجاد کرده و سپس متد execute را با منطق کسبوکار مورد نظر پر کنید.
این متد مسئول دریافت دادههای ورودی، پردازش آنها و بازگرداندن نتایج است.
استفاده از n8n توسعه Node این امکان را فراهم میکند که توابع پیچیده کسبوکار را به راحتی در قالب Nodeهای قابل استفاده مجدد پیادهسازی کنید.

چگونه Node سفارشی را با Docker ادغام کنیم؟
برای ادغام Node سفارشی n8n با Docker، ابتدا باید پروژه Node.js خود را ایجاد کرده و فایلهای مربوط به Node سفارشی را توسعه دهید.
سپس با استفاده از Dockerfile مناسب، پوشه custom_nodes را به داخل کانتینر n8n کپی میکنید.
در مرحله بعد، با استفاده از docker-compose.yml، سرویس n8n را همراه با Node سفارشی راهاندازی میکنید.
برای ساخت یک Dockerfile مناسب، باید از image پایه n8n استفاده کرده و پوشه custom_nodes را به مسیر /home/node/.n8n/custom/node_modules/custom_nodes کپی کنید.
همچنین باید محیطهای متغیر لازم مانند DB_TYPE، DB_POSTGRESDB_HOST و سایر تنظیمات مربوط به پایگاه داده را تنظیم نمایید.
- ایجاد Dockerfile برای کپی کردن پوشه custom_nodes
- تنظیم docker-compose.yml با متغیرهای محیطی مناسب
- استفاده از volume برای نگهداری دادههای n8n
- پیکربندی اتصال به پایگاه داده PostgreSQL
- تنظیم N8N_CUSTOM_EXTENSIONS برای مسیر Node سفارشی
- راهاندازی سرویس با دستور docker-compose up -d
پیکربندی Dockerfile برای Nodeهای سفارشی
برای پیادهسازی n8n Node سفارشی در محیط Docker، ابتدا باید یک Dockerfile مناسب ایجاد کنید.
این فایل شامل کپی کردن پوشه custom_nodes به مسیر پیشفرض n8n و تنظیم مجوزهای مناسب است.
در این روش، شما میتوانید تمام npm packages مورد نیاز را درون کانتینر نصب کرده و از قابلیتهای TypeScript و Python در محیط ایزوله استفاده کنید.
برای اجرای موفقیتآمیز، باید مسیر پوشه custom_nodes را به درستی در Dockerfile مشخص کنید و از کاربر node برای اجرای ایمن استفاده نمایید.
این روش امکان توسعه و تست Nodeهای سفارشی را در محیط کانتینریزه شده فراهم میکند.
تنظیم docker-compose برای محیط توسعه
برای پیادهسازی n8n Node سفارشی در محیط Docker، ابتدا باید فایل docker-compose.yml را ایجاد کنید.
این فایل شامل سرویسهای ضروری مانند پایگاه داده PostgreSQL و سرویس n8n میباشد.
در تنظیمات n8n، باید مسیر پوشه custom nodes را به volume اضافه کنید تا فایلهای node سفارشی شما در زمان اجرا در دسترس باشند.
برای اتصال صحیح، از متغیرهای محیطی مانند DB_POSTGRESDB_HOST، DB_POSTGRESDB_USER و DB_POSTGRESDB_PASSWORD استفاده میشود.
همچنین باید volume مربوط به custom nodes را به مسیر /home/node/.n8n/custom/node_modules/custom_nodes متصل کنید تا n8n بتواند nodeهای سفارشی شما را تشخیص دهد.
مدیریت وابستگیها در محیط containerized
مدیریت وابستگیها در محیط کانتینریزه شده برای n8n Custom Node توسعه، نیازمند رویکردی ساختاریافته است.
در این محیط، باید تمام پکیجهای مورد نیاز در داخل کانتینر نصب شوند تا Node سفارشی شما به درستی کار کند.
این شامل مدیریت npm packages، کتابخانههای TypeScript و هر وابستگی دیگری است که Node شما به آن نیاز دارد.
برای مدیریت بهینه وابستگیها در Docker، باید یک Dockerfile ایجاد کنید که شامل مراحل نصب تمام پکیجهای ضروری باشد.
این رویژه تضمین میکند که محیط اجرای شما همیشه سازگار و قابل تکرار است، که برای توسعه و استقرار n8n Node Development بسیار حیاتی میباشد.

چگونه Node سفارشی را تست و debug کنیم؟
تست و debugging Node سفارشی در n8n از اهمیت بالایی برخوردار است.
برای این منظور میتوانید از ابزارهای مختلفی استفاده کنید که در محیط توسعه n8n در دسترس هستند.
یکی از قابلیتهای قدرتمند n8n امکان استفاده از console.log در مرورگر است که به شما امکان میدهد خروجیهای دیباگ را مستقیماً در کنسول DevTools مرورگر مشاهده کنید.
برای تست Nodeهای سفارشی، میتوانید از قابلیت “Test step” استفاده کنید که به شما امکان میدهد هر مرحله از workflow را به صورت جداگانه تست کنید.
همچنین در محیط self-hosted n8n، امکان استفاده از npm packages در کدهای JavaScript فراهم شده است که این قابلیت در نسخه cloud در دسترس نیست.
ابزارهای اصلی برای دیباگینگ شامل:
- استفاده از console.log در مرورگر برای مشاهده خروجیها
- قابلیت Test step برای تست جداگانه هر نود
- امکان import از cURL برای تست درخواستهای HTTP
- استفاده از npm packages در محیط self-hosted
- امکان اجرای Python code در نودهای کد
- مشاهده لاگهای کامل اجرای workflow
ابزارهای debugging داخلی n8n
n8n ابزارهای قدرتمند debugging داخلی را برای توسعهدهندگان Node سفارشی فراهم میکند.
یکی از مهمترین قابلیتها، امکان استفاده از console.log در کدهای JavaScript است که خروجی آن مستقیماً در کنسول Dev Tools مرورگر نمایش داده میشود.
این ویژگی هنگام تست و اشکالزدایی کدهای نوشتهشده در n8n Node Development بسیار مفید است.
برای اجرای کدهای پیچیدهتر، n8n امکان استفاده از پکیجهای npm خارجی را در محیط self-hosted فراهم میکند.
همچنین قابلیت اجرای کدهای Python از طریق Pyodide وجود دارد که برای توسعهدهندگان با زمینه پایتون مفید است.
این ابزارها به توسعهدهندگان کمک میکنند تا Node سفارشی n8n خود را بهطور مؤثر تست و اشکالزدایی کنند.
استفاده از console.log و ابزارهای توسعهدهنده
یکی از قدرتمندترین ابزارهای debugging در توسعه n8n Node سفارشی استفاده از console.log است.
این تابع به شما امکان میدهد مقادیر متغیرها، وضعیت اجرا و خطاها را در مرورگر مشاهده کنید.
هنگام کلیک روی دکمه “اجرای workflow” یا “تست مرحله”، خروجی console.log مستقیماً در کنسول Dev Tools مرورگر نمایش داده میشود.
برای توسعهدهندگان، n8n امکانات پیشرفتهتری نیز ارائه میدهد.
در حالت self-hosted میتوانید از پکیجهای npm در کدهای JavaScript استفاده کنید و حتی کدهای Python را نیز اجرا نمایید.
این قابلیتها debugging پیچیدهتر را ممکن میسازند.
- استفاده از console.log برای نمایش مقادیر در زمان اجرا
- مشاهده خروجی در کنسول Dev Tools مرورگر
- اجرای کدهای JavaScript با پشتیبانی از پکیجهای خارجی
- امکان اجرای کدهای Python برای پردازشهای پیشرفته
- ابزار import از cURL برای تست درخواستهای HTTP
- مدیریت credentialها برای ذخیره امن کلیدهای API
تست end-to-end workflowهای حاوی Node سفارشی
برای تست end-to-end n8n Node سفارشی در workflowها، باید از ابزارهای debugging و تست داخلی n8n استفاده کنید.
این فرآیند شامل اجرای کامل workflow و بررسی عملکرد Node در محیط واقعی است.
شما میتوانید با استفاده از قابلیت console.log در n8n Custom Node، خروجیهای دیباگ را در کنسول مرورگر مشاهده کنید.
برای تست end-to-end، ابتدا workflow را در حالت تست اجرا کرده و سپس با استفاده از دکمه “Execute workflow” یا “Test step”، عملکرد Node را بررسی کنید.
این روش به شما امکان میدهد تا خطاها را شناسایی و رفع کنید.

چگونه Node سفارشی را با APIهای خارجی integrate کنیم؟
برای ادغام n8n Node سفارشی با APIهای خارجی، ابتدا باید یک پروژه Node.js جدید ایجاد کرده و فایلهای مربوط به Node سفارشی را تنظیم کنید.
این فرآیند شامل نوشتن کد TypeScript برای تعامل با APIهای خارجی و مدیریت اعتبارنامهها میشود.
شما میتوانید از ماژولهای npm برای ارتباط با APIها استفاده کرده و اعتبارنامهها را به صورت امن ذخیره نمایید.
برای مدیریت اعتبارنامهها در n8n Custom Node، میتوانید از سیستم credential داخلی n8n استفاده کنید که به کاربران اجازه میدهد کلیدهای API و توکنهای دسترسی را به صورت امن وارد کنند. این سیستم از رمزنگاری برای محافظت از اطلاعات حساس استفاده میکند.
همچنین میتوانید از متدهای HTTP مانند GET، POST، PUT و DELETE برای برقراری ارتباط با APIهای خارجی استفاده نمایید.
- ایجاد پروژه Node.js و تنظیم package.json
- نوشتن کد TypeScript برای تعامل با APIهای خارجی
- استفاده از ماژولهای npm برای ارتباط HTTP
- مدیریت امن اعتبارنامهها با سیستم credential n8n
- پشتیبانی از متدهای مختلف HTTP برای APIها
- پیادهسازی error handling برای خطاهای API
پیادهسازی HTTP requests و REST API calls
برای پیادهسازی HTTP requests و REST API calls در n8n Node سفارشی، میتوانید از ماژولهای داخلی n8n استفاده کنید.
این قابلیت به شما امکان میدهد تا با APIهای خارجی ارتباط برقرار کرده و دادهها را پردازش کنید.
در TypeScript، میتوانید از کلاسهای n8n-workflow برای مدیریت درخواستهای HTTP استفاده نمایید.
برای مدیریت اعتبارنامهها (credentials) در n8n، میتوانید از سیستم credential management داخلی استفاده کنید که به صورت امن اطلاعات حساس را ذخیره میکند.
این ویژگی به شما امکان میدهد تا کلیدهای API و توکنهای دسترسی را بدون قرار دادن مستقیم در کد، مدیریت نمایید.
مدیریت authentication و credentials
مدیریت صحیح authentication و credentials در توسعه n8n Node سفارشی از اهمیت بالایی برخوردار است.
در n8n میتوانید از طریق سیستم مدیریت credentials داخلی، اطلاعات احراز هویت را به صورت امن ذخیره و مدیریت کنید.
این سیستم از انواع مختلفی از روشهای احراز هویت مانند API Key، OAuth، Basic Auth و غیره پشتیبانی میکند.
برای APIهای خارجی که نیاز به OAuth دارند، باید در Google Console یک OAuth Client ایجاد کنید و صفحه رضایت را پیکربندی نمایید.
این فرآیند حدود 10-20 دقیقه زمان میبرد اما امنیت بالایی را فراهم میکند.
برای API Keyها نیز میتوانید از سیستم credentials داخلی n8n استفاده کرده و کلیدها را به صورت امن ذخیره کنید.
پردازش و transform دادههای دریافتی
پس از دریافت دادهها از APIهای خارجی، مرحله پردازش و تبدیل دادهها آغاز میشود.
در n8n Custom Node، شما میتوانید از قابلیتهای قدرتمند JavaScript برای پردازش دادهها استفاده کنید.
این شامل فیلتر کردن، مرتبسازی، تبدیل فرمت و اعتبارسنجی دادههای دریافتی میشود.
برای پردازش دادهها در n8n Node Development، میتوانید از کدهای TypeScript استفاده کرده و کتابخانههای npm مورد نیاز را نصب کنید.
همچنین امکان استفاده از Python در بلوکهای کد نیز وجود دارد که با Pyodide اجرا میشود.
این قابلیتها به شما اجازه میدهند دادههای دریافتی را به طور کامل پردازش و برای مراحل بعدی آماده کنید.

چگونه از npm packages در Node سفارشی استفاده کنیم؟
یکی از قابلیتهای قدرتمند در توسعه n8n Custom Node، امکان استفاده از npm packages در کد است.
این ویژگی به توسعهدهندگان اجازه میدهد تا از کتابخانههای موجود در اکوسیستم npm برای افزودن قابلیتهای پیشرفته به Nodeهای سفارشی خود استفاده کنند.
برای استفاده از npm packages در Node سفارشی، ابتدا باید package مورد نظر را در فایل package.json پروژه خود اضافه کنید.
سپس میتوانید آن را در کد TypeScript خود import کرده و از قابلیتهای آن استفاده نمایید.
این رویکرد به ویژه در n8n Node Development بسیار مفید است زیرا امکان استفاده از کتابخانههای تخصصی را فراهم میکند.
در تنظیمات n8n self-hosted، میتوانید با استفاده از متغیرهای محیطی مانند NODE_FUNCTION_ALLOW_EXTERNAL=* و NODE_FUNCTION_ALLOW_BUILTIN=*، دسترسی به ماژولهای خارجی را فعال کنید.
این تنظیمات در فایل docker-compose.yml قابل پیکربندی هستند و به توسعهدهندگان اجازه میدهند تا از طیف وسیعی از npm packages در کدهای خود استفاده نمایند.
نصب و مدیریت وابستگیهای خارجی
برای استفاده از npm packages در n8n Node سفارشی، ابتدا باید پکیجهای مورد نیاز را به فایل package.json پروژه اضافه کنید.
این کار با اجرای دستور npm install در دایرکتوری custom-nodes انجام میشود. سپس با کامپایل TypeScript کد، پکیجها در دسترس قرار میگیرند.
در n8n Custom Node توسعه، میتوانید از پکیجهای خارجی برای افزودن قابلیتهای پیشرفته استفاده کنید.
این ویژگی مخصوصاً در محیط n8n self-hosted در دسترس است و امکان اجرای کدهای پیچیدهتر را فراهم میکند.
محدودیتها و ملاحظات امنیتی
استفاده از npm packages در n8n Custom Node با محدودیتهای امنیتی مهمی همراه است.
در نسخه self-hosted میتوانید از پکیجهای خارجی استفاده کنید، اما این قابلیت در نسخه cloud در دسترس نیست.
مهمترین چالش امنیتی مربوط به اجرای کدهای خارجی در محیط n8n است که میتواند خطرات امنیتی جدی ایجاد کند.
برای کاهش ریسکهای امنیتی، باید از پکیجهای معتبر و بهروز استفاده کنید و همیشه آخرین نسخههای امنیتی را نصب نمایید.
همچنین بهتر است پکیجها را از منابع رسمی npm دریافت کنید و از نصب پکیجهای ناشناس خودداری کنید.
این اقدامات به حفظ امنیت n8n Node سفارشی شما کمک میکند.
best practices برای استفاده از packages سوم
استفاده از npm packages در توسعه n8n Custom Node یکی از قابلیتهای قدرتمند این پلتفرم است که به شما امکان میدهد از کتابخانههای موجود در اکوسیستم Node.js استفاده کنید.
برای استفاده ایمن و بهینه از این پکیجها، رعایت بهترین روشها ضروری است.
اولین و مهمترین نکته، بررسی امنیت و اعتبار پکیجها قبل از نصب است. همیشه از پکیجهایی استفاده کنید که بهطور فعال نگهداری میشوند و دارای جامعه کاربری بزرگ هستند.
همچنین حتما نسخههای خاص پکیجها را در فایل package.json مشخص کنید تا از بروز تغییرات ناگهانی جلوگیری شود.
- همیشه از نسخههای ثابت (fixed versions) در package.json استفاده کنید
- پکیجها را بهطور منظم برای بهروزرسانیهای امنیتی بررسی نمایید
- از پکیجهای با اندازه کوچک و وابستگیهای محدود استفاده کنید
- حجم نهایی باندل را در نظر بگیرید تا عملکرد n8n Node سفارشی تحت تأثیر قرار نگیرد.

چگونه Node سفارشی را با Python ادغام کنیم؟
n8n از فوریه ۲۰۲۳ پشتیبانی از Python را از طریق Pyodide اضافه کرده است که امکان اجرای کدهای پایتون را در داخل نودهای کد فراهم میکند.
این ویژگی به توسعهدهندگان اجازه میدهد تا از کتابخانههای پایتون در n8n Node سفارشی استفاده کنند و قابلیتهای جدیدی به پلتفرم اضافه نمایند.
برای ادغام پایتون در نودهای سفارشی، باید از نود کد استفاده کنید که امکان اجرای اسکریپتهای پایتون را فراهم میکند.
Pyodide کد پایتون را به WebAssembly تبدیل کرده و سپس آن را در محیط Node.js اجرا میکند.
این رویکرد برای پردازشهای پیچیده، تحلیل دادهها و استفاده از کتابخانههای خاص پایتون بسیار مفید است.
محدودیتهای فعلی شامل عدم امکان استفاده از پایتون در تمام فیلدهای ورودی و نیاز به اجرای آن فقط در بلوکهای کد است.
همچنین به دلیل سربار راهاندازی محیط پایتون، این ویژگی تنها در نسخه self-hosted قابل استفاده است و در n8n Cloud در دسترس نمیباشد.
پیکربندی محیط Python در n8n
برای استفاده از قابلیتهای Python در n8n، باید محیط پایتون را به درستی پیکربندی کنید.
n8n از Pyodide برای اجرای کدهای پایتون استفاده میکند که کدها را به WebAssembly تبدیل کرده و در محیط V8 جاوااسکریپت اجرا مینماید.
این قابلیت از فوریه ۲۰۲۳ به n8n اضافه شده است.
برای فعالسازی پایتون در n8n، باید از گره Code استفاده کنید. در این گره میتوانید زبان اجرا را به Python تغییر دهید و کدهای پایتون خود را بنویسید.
توجه داشته باشید که به دلیل سربار اجرای محیط پایتون، این قابلیت فقط در گرههای کد در دسترس است و نمیتوان از آن در فیلدهای ورودی دیگر استفاده کرد.
- استفاده از Pyodide برای تبدیل کد پایتون به WebAssembly
- اجرای کدهای پایتون در محیط V8 جاوااسکریپت
- فعالسازی فقط در گرههای Code
- پشتیبانی از ماژولهای استاندارد پایتون
- امکان استفاده در نسخه self-hosted n8n
مزایا و محدودیتهای استفاده از Python
استفاده از Python در توسعه n8n Node سفارشی مزایای قابل توجهی دارد.
این زبان برنامهنویسی به توسعهدهندگان امکان میدهد تا از کتابخانههای قدرتمند پایتون برای پردازش دادهها، تحلیل محتوا و انجام محاسبات پیچیده استفاده کنند.
همچنین پشتیبانی از Pyodide در n8n این امکان را فراهم میکند که کدهای پایتون مستقیماً در مرورگر اجرا شوند.
با این حال، استفاده از پایتون در n8n محدودیتهایی نیز دارد.
اجرای کد پایتون به دلیل سربار راهاندازی محیط پایتون، تنها در بلوکهای کد امکانپذیر است و نمیتوان از آن در هر فیلد ورودی استفاده کرد.
همچنین این قابلیت تنها در نسخه self-hosted n8n در دسترس است و در نسخه ابری قابل استفاده نیست.
سناریوهای مناسب برای Python integration
ادغام Python در n8n Custom Node برای سناریوهایی مناسب است که نیاز به پردازش دادههای پیچیده، محاسبات علمی یا استفاده از کتابخانههای تخصصی دارند.
این قابلیت به توسعهدهندگان امکان میدهد تا از قدرت n8n Python برای اجرای کدهای پایتون در محیط امن n8n استفاده کنند.
از جمله سناریوهای مناسب برای استفاده از Python در n8n میتوان به موارد زیر اشاره کرد:
- پردازش دادههای علمی و آماری با کتابخانههایی مانند Pandas و NumPy
- انجام محاسبات پیچیده ریاضی و الگوریتمهای تخصصی
- استفاده از کتابخانههای یادگیری ماشین و هوش مصنوعی
- پردازش متن و زبانهای طبیعی با ابزارهای پیشرفته
- اتصال به APIهای تخصصی که تنها با پایتون قابل دسترسی هستند
- انجام عملیات وب اسکرپینگ پیشرفته با کتابخانههایی مانند BeautifulSoup

چه best practicesهایی برای توسعه Node سفارشی وجود دارد؟
توسعه n8n Node سفارشی نیازمند رعایت اصول و بهترین روشها برای اطمینان از عملکرد صحیح و قابلیت نگهداری است.
استفاده از TypeScript به عنوان زبان اصلی توسعه توصیه میشود زیرا این زبان قابلیتهای نوعدهی قوی و پشتیبانی از ویژگیهای مدرن را ارائه میدهد.
همچنین، ساختار پروژه باید به صورت منظم سازماندهی شود با پوشههای جداگانه برای کد منبع و فایلهای کامپایل شده.
یکی از مهمترین نکات در توسعه Node سفارشی، مدیریت وابستگیها است.
باید از آخرین نسخههای کتابخانههای n8n مانند n8n-workflow استفاده شود و وابستگیها به دقت در فایل package.json تعریف شوند.
همچنین، کامپایل TypeScript باید با استفاده از فایل tsconfig.json مناسب انجام شود تا کد خروجی بهینه و بدون خطا تولید شود.
- استفاده از ساختار استاندارد برای تعریف Node شامل displayName، name، group و version
- پیادهسازی صحیح متد execute برای پردازش دادههای ورودی و تولید خروجی
- استفاده از پارامترهای مناسب با نوعدهی صحیح در properties
- مدیریت خطاها و بازگرداندن پیامهای خطای واضح
- مستندسازی کد و ارائه توضیحات کامل برای هر Node
- تست Node قبل از استفاده در محیط تولید
برای محیطهای Docker، باید اطمینان حاصل شود که فایل Dockerfile به درستی پوشه custom nodes را کپی میکند و متغیرهای محیطی مناسب تنظیم شدهاند.
همچنین، استفاده از docker-compose برای مدیریت سرویسهای وابسته مانند پایگاه داده توصیه میشود.
الگوهای طراحی و architecture مناسب
برای توسعه n8n Node سفارشی، رعایت الگوهای طراحی مناسب ضروری است.
استفاده از TypeScript به جای JavaScript توصیه میشود زیرا کامپایلر TypeScript خطاها را زودتر شناسایی میکند و کد را قابل اعتمادتر میسازد.
همچنین ساختار پوشهای منظم با تفکیک فایلهای node، configuration و build scripts از اهمیت ویژهای برخوردار است.
در معماری توسعه، استفاده از Docker برای containerization و مدیریت وابستگیها بسیار مفید است. این رویکرد امکان تست یکسان در محیطهای مختلف را فراهم میکند.
همچنین پیادهسازی unit tests و integration tests برای اطمینان از عملکرد صحیح node در شرایط مختلف ضروری است.
مدیریت state و data flow
مدیریت صحیح state و data flow در توسعه n8n Node سفارشی از اهمیت ویژهای برخوردار است.
برای حفظ عملکرد بهینه و جلوگیری از مشکلات حافظه، باید از ذخیرهسازی دادههای موقت در متغیرهای محلی استفاده کنید و از نگهداری state بین اجراهای مختلف خودداری نمایید.
دادهها باید به صورت خطی و قابل پیشبینی بین نودها جریان داشته باشند.
بهترین روشها شامل استفاده از ساختارهای دادهای غیرقابل تغییر (immutable)، پیادهسازی صحیح error handling و اطمینان از type safety در TypeScript است.
همچنین باید از circular dependencies جلوگیری کرده و دادهها را به صورت atomic پردازش کنید تا consistency در workflow حفظ شود.
testing و quality assurance
برای توسعه n8n Node سفارشی، تستهای جامع و کیفیت کد از اهمیت بالایی برخوردار است.
استفاده از TypeScript در توسعه این نودها به دلیل قابلیتهای نوعدهی قوی و کشف خطاها در زمان کامپایل، کیفیت کد را به طور قابل توجهی بهبود میبخشد.
اجرای تستهای واحد و یکپارچهسازی برای اطمینان از عملکرد صحیح نود در محیطهای مختلف ضروری است.
در محیط توسعه، استفاده از console.log برای دیباگ کردن کد در مرورگر بسیار مفید است.
همچنین، کامپایل منظم کد TypeScript با دستور npm run build و بررسی خطاهای کامپایل از بهترین روشهای تضمین کیفیت کد محسوب میشود.
برای تستهای پیچیدهتر، ایجاد محیط Docker با استفاده از docker-compose امکان شبیهسازی محیط تولید را فراهم میکند.

چه منابع آموزشی و community supportهایی موجود است؟
برای توسعهدهندگان علاقهمند به ساخت n8n Custom Node، منابع آموزشی و پشتیبانی جامعه متنوعی در دسترس است.
جامعه n8n بهطور فعال در حال توسعه و بهروزرسانی منابع است و توسعهدهندگان میتوانند از راهنماهای موجود و پشتیبانی جامعه استفاده کنند.
جامعه n8n در پلتفرم Discourse فعالیت میکند و توسعهدهندگان میتوانند سوالات خود را در مورد ساخت n8n Node سفارشی مطرح کنند. همچنین منابع زیر در دسترس هستند:
- مستندات رسمی n8n در آدرس docs.n8n.io
- انجمن جامعه n8n برای پرسش و پاسخ
- راهنماهای جامع توسعه Node با TypeScript
- مثالهای Docker برای راهاندازی محیط توسعه
- راهنماهای نصب و پیکربندی npm packages
- پشتیبانی از طریق GitHub برای گزارش issues
توسعهدهندگان میتوانند از API عمومی n8n برای یکپارچهسازی با رابطهای کاربری سفارشی استفاده کنند و همچنین از قابلیت اجرای کد JavaScript و Python در محیط n8n بهرهمند شوند.
مستندات رسمی n8n برای توسعهدهندگان
مستندات رسمی n8n منبع اصلی و معتبری برای توسعهدهندگان است که قصد ساخت n8n Node سفارشی دارند.
این مستندات شامل راهنمای جامع توسعه نودهای سفارشی با استفاده از TypeScript و npm packages میباشد.
در این مستندات میتوانید نحوه راهاندازی پروژه، ساختار نودها، کامپایل کد و ادغام با محیط Docker را بیاموزید.
مستندات n8n همچنین شامل مثالهای عملی برای ساخت نودهای مختلف، نحوه استفاده از کتابخانههای خارجی و راهنمای کامل برای n8n توسعه Node است.
این منابع به توسعهدهندگان کمک میکند تا بدون نیاز به دانش عمیق از کدهای داخلی n8n، نودهای سفارشی خود را ایجاد کنند.
انجمنهای community و forums
انجمن رسمی n8n یک منبع ارزشمند برای توسعهدهندگان n8n Custom Node است که در آن کاربران میتوانند سوالات فنی مطرح کنند، راهنمایی دریافت نمایند و تجربیات خود را به اشتراک بگذارند.
این انجمن شامل بخشهای مختلفی از جمله سوالات مربوط به توسعه نودهای سفارشی، مشکلات Docker و راهنماییهای TypeScript است.
کاربران در این انجمن میتوانند با توسعهدهندگان اصلی n8n و سایر اعضای جامعه تعامل داشته باشند.
نمونههایی از موضوعات مطرح شده شامل راهنمایی برای ساخت نودهای سفارشی در محیط Docker، حل مشکلات npm link و بهروزرسانی مستندات قدیمی است.
همچنین کاربران تجربیات خود را با استفاده از ابزارهایی مانند ChatGPT برای تولید راهنماهای آموزشی به اشتراک میگذارند.
نمونهکدها و پروژههای open source
جامعه توسعهدهندگان n8n نمونهکدها و پروژههای متنوعی را به صورت open source ارائه میدهند که به توسعهدهندگان کمک میکند تا با ساختار n8n Custom Node آشنا شوند.
این نمونهها شامل کدهای TypeScript برای ایجاد نودهای سفارشی، پیکربندی Docker برای اجرای n8n و مثالهای عملی از نحوه استفاده از npm packages در توسعه نودها هستند.
یکی از نمونههای برجسته، راهنمای کامل ساخت نود سفارشی با استفاده از TypeScript و Docker است که شامل کدهای کاملاً عملیاتی برای ایجاد نودهای transform مانند نود معکوسکننده رشته میباشد.
همچنین پروژههای open source موجود در npm به توسعهدهندگان امکان نصب و استفاده از نودهای جامعه را میدهند.
ساخت Node سفارشی در n8n راهکاری قدرتمند برای توسعه قابلیتهای اختصاصی و گسترش امکانات این پلتفرم اتوماسیون است.
با استفاده از این قابلیت، توسعهدهندگان میتوانند به راحتی ماژولهای سفارشی ایجاد کنند که با نیازهای خاص کسبوکارشان تطابق کامل داشته باشد.
مزیت اصلی این رویکرد، انعطافپذیری بالا و امکان یکپارچهسازی با سیستمهای داخلی سازمان است.
آینده توسعه n8n Custom Node بسیار امیدوارکننده است.
جامعه توسعهدهندگان به طور فعال در حال ایجاد کتابخانهها و ابزارهای کمکی برای تسهیل فرآیند ساخت Nodeهای سفارشی هستند.
با پیشرفتهای مستمر در زمینه TypeScript و Docker، انتظار میرود که فرآیند توسعه و استقرار Nodeهای سفارشی سادهتر و کارآمدتر شود.
- امکان استفاده از npm packages برای گسترش قابلیتها
- پشتیبانی از TypeScript برای توسعه ایمن و ساختاریافته
- یکپارچهسازی آسان با Docker برای استقرار self-hosted
- قابلیت توسعه Nodeهای سفارشی با Python و JavaScript
- امکان شخصیسازی کامل UI و رفتار Nodeها
- پشتیبانی از REST API برای مدیریت Nodeها

