Phát triển các nút tùy chỉnh cho quy trình công việc 8N8N

Developing Custom Nodes for 8n8n Workflows

Phát triển các nút tùy chỉnh cho quy trình làm việc của N8N

Hiểu N8N

N8N là một công cụ tự động hóa dòng công việc nguồn mở cho phép người dùng kết nối các dịch vụ khác nhau và tự động hóa các tác vụ mà không cần chuyên môn lập trình. Nó cung cấp một giao diện để tạo ra các quy trình công việc bằng cách chuỗi các nút khác nhau cùng nhau, đại diện cho các tác vụ hoặc hành động riêng lẻ. Mặc dù N8N đi kèm với nhiều nút được xây dựng sẵn cho các ứng dụng phổ biến (như Google Sheets, Slack và Shopify), có những lúc người dùng yêu cầu chức năng không có sẵn. Đây là nơi các nút tùy chỉnh đi vào chơi.

Tại sao tạo các nút tùy chỉnh?

Tạo các nút tùy chỉnh có thể tăng cường chức năng N8N phù hợp với các nhu cầu kinh doanh cụ thể hoặc tích hợp với các dịch vụ độc quyền. Các nút tùy chỉnh cho phép tự động hóa các hoạt động bespoke, cải thiện năng suất hiệu quả. Bằng cách phát triển một nút tùy chỉnh, bạn có thể gói gọn các tương tác logic và API duy nhất cần thiết cho các luồng dữ liệu cụ thể trong N8N.

Bắt đầu

Trước khi lặn vào việc phát triển các nút tùy chỉnh, hãy đảm bảo bạn đã cài đặt N8N trên hệ thống của mình. Bạn có thể chạy N8N cục bộ bằng Docker, NPM hoặc trong đám mây thông qua giải pháp được lưu trữ.

  1. Thiết lập môi trường phát triển của bạn:

    • Sao chép kho lưu trữ N8N từ GitHub đến máy cục bộ của bạn.
    • Cài đặt các phụ thuộc cần thiết, thường thông qua NPM hoặc sợi.
  2. Cấu trúc thư mục:

    • Điều hướng đến packages/nodes-base/nodes/ Thư mục. Đây là các nút hiện có, phục vụ như các mẫu.
    • Tạo một thư mục mới cho nút tùy chỉnh của bạn, theo quy ước đặt tên làm nổi bật mục đích của nó.

Phát triển nút tùy chỉnh của bạn

  1. Tạo tệp nút của bạn:

    • Bên trong thư mục mới được tạo của bạn, phát triển tệp nút tùy chỉnh của bạn (ví dụ: MyService.node.ts).
    • Xác định cấu trúc chính của nút của bạn, bao gồm tên nút, mô tả và các thuộc tính sẽ xác định hành vi của nó.
    import { INodeType, INodeTypeDescription } from 'n8n-workflow';
    
    export class MyService implements INodeType {
        description: INodeTypeDescription = {
            displayName: 'My Custom Node',
            name: 'myService',
            icon: 'file:myService.svg', // Ensure to add your node's icon
            group: ['transform'],
            version: 1,
            description: 'Node to interact with My Service API',
            defaults: {
                name: 'My Custom Node',
                color: '#FF0000',
            },
            inputs: ['main'],
            outputs: ['main'],
            properties: [
                {
                    displayName: 'API Key',
                    name: 'apiKey',
                    type: 'string',
                    default: '',
                    required: true,
                    placeholder: 'Your API Key',
                    description: 'API key to authenticate requests',
                },
                // Add other properties required by your node
            ],
        };
    
        async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
            // Execution logic here
        }
    }
  2. Xác định thuộc tính nút:

    • Sử dụng properties Mảng để xác định đầu vào nút của bạn sẽ chấp nhận. Mỗi thuộc tính nên được mô tả với các thuộc tính bao gồm displayNameThì nameThì typeThì defaultdescription.
  3. Xử lý thực thi nút:

    • Trong execute Phương pháp được cung cấp bởi IExecuteFunctions giao diện, thực hiện logic để thực hiện chức năng của nút của bạn.
    async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
        const apiKey = this.getNodeParameter('apiKey') as string;
        // Make an API call using the provided API Key
    
        // Return data in a format compatible with n8n
        return this.prepareOutputData(data);
    }
  4. Tích hợp các cuộc gọi API:

    • Trong phương thức thực thi của bạn, bạn có thể sử dụng các thư viện như axios hoặc node-fetch Để thực hiện các yêu cầu HTTP đến API bên ngoài.
    • Xử lý xác thực, tiêu đề và tham số theo yêu cầu của API cụ thể mà bạn đang tương tác.

Kiểm tra nút của bạn

  • Di chuyển thư mục nút mới của bạn vào phần mô -đun nút tương ứng trong phiên bản N8N cục bộ của bạn.
  • Khởi động lại N8N và nút tùy chỉnh của bạn bây giờ sẽ xuất hiện trong UI.
  • Tạo một quy trình công việc giả để kiểm tra chức năng của nó. Gỡ lỗi có thể được thực hiện bằng cách sử dụng nhật ký console hoặc các tính năng gỡ lỗi tích hợp của N8N.

Tài liệu

  • Vì nút tùy chỉnh của bạn cung cấp các chức năng độc đáo, hãy xem xét việc viết tài liệu cho người dùng khác (hoặc bản thân trong tương lai của bạn) để hiểu cách sử dụng nút một cách hiệu quả.
  • Bao gồm các ví dụ về các chức năng đầu vào và đầu ra, thông báo lỗi tiềm năng và các mẹo khắc phục sự cố.

Kiểm soát và hợp tác phiên bản

  • Sử dụng các nền tảng như GitHub để quản lý mã của bạn và theo dõi các thay đổi. Điều này đặc biệt hữu ích cho sự hợp tác nếu bạn đang làm việc trong một nhóm.
  • Gắn thẻ bản phát hành của bạn một cách thích hợp để thực hiện các thay đổi nhận dạng đơn giản hơn cho bất kỳ ai có thể sử dụng hoặc hỗ trợ các nút tùy chỉnh của bạn.

Các tính năng nâng cao

  • Phương pháp tĩnh: Nếu nút của bạn cần quản lý các loại dữ liệu phức tạp, hãy xem xét thực hiện các phương thức tĩnh để xử lý các chuyển đổi dữ liệu trước hoặc sau khi thực hiện chính.
  • NodeCapability: Tăng cường khả năng của nút tùy chỉnh của bạn thông qua các tính năng như giới hạn tốc độ hoặc xử lý lỗi để cải thiện sự mạnh mẽ của tích hợp của bạn.

Xuất bản các nút tùy chỉnh

Nếu bạn thấy nút tùy chỉnh của mình là hữu ích rộng rãi, hãy xem xét đóng góp lại cho cộng đồng N8N bằng cách tuân theo các hướng dẫn đóng góp của họ. Bằng cách này, những người dùng khác có thể được hưởng lợi từ công việc của bạn và bạn có thể nhận được phản hồi để cải thiện nó hơn nữa.

Bằng cách thực hiện các bước nền tảng này, các nhà phát triển có thể tạo các nút tùy chỉnh phù hợp, hiệu quả và mạnh mẽ trong N8N, đưa các quy trình tự động hóa của họ lên một tầm cao mới. Thông qua việc tiếp tục học tập và thích ứng, người dùng có thể mở khóa toàn bộ tiềm năng của quy trình làm việc của N8N.