Xây dựng các nút tùy chỉnh trong N8N: Hướng dẫn cho các nhà phát triển
Hiểu N8N
N8N là một công cụ tự động hóa nguồn mở cho phép người dùng kết nối các dịch vụ và ứng dụng khác nhau thông qua các quy trình công việc. Nó vượt trội về tính linh hoạt và khả năng mở rộng của nó, cho phép các nhà phát triển và người dùng doanh nghiệp tự động hóa các tác vụ lặp đi lặp lại một cách hiệu quả. Một trong những tính năng nổi bật của N8N là khả năng tạo các nút tùy chỉnh, cho phép người dùng mở rộng các khả năng của N8N ngoài các nút được xây dựng sẵn có sẵn trong nền tảng.
Các nút tùy chỉnh là gì?
Các nút tùy chỉnh trong N8N là các hàm do người dùng xác định tương tác với API hoặc các nguồn dữ liệu khác có thể không được bao phủ bởi các nút hiện có. Bằng cách xây dựng một nút tùy chỉnh, các nhà phát triển có thể gói gọn logic phức tạp, thực hiện các chuyển đổi dữ liệu độc đáo và tích hợp liền mạch với quy trình công việc của họ. Các nút tùy chỉnh tạo điều kiện giao tiếp giữa N8N và các dịch vụ web hoặc cơ sở dữ liệu khác, làm cho nó trở thành một thành phần quan trọng trong các dự án tự động hóa.
Thiết lập môi trường phát triển của bạn
Trước khi lặn vào việc tạo các nút tùy chỉnh, bạn cần thiết lập môi trường phát triển của mình. Đây là các bước thiết yếu:
-
Cài đặt Node.js: Đảm bảo bạn đã cài đặt Node.js. N8N tương thích với Node.js phiên bản 14 trở lên.
# Check your Node.js version node -v
-
Sao chép kho lưu trữ N8N: Kho lưu trữ github N8N chứa tất cả các tệp cần thiết để phát triển các nút tùy chỉnh.
git clone https://github.com/n8n-io/n8n.git cd n8n
-
Cài đặt phụ thuộc: Chạy lệnh sau để cài đặt tất cả các gói yêu cầu.
npm install
-
Chạy N8N: Bắt đầu N8N ở chế độ phát triển để kiểm tra các nút tùy chỉnh của bạn.
npm run start
Tạo một nút tùy chỉnh
Tạo một nút tùy chỉnh đòi hỏi phải hiểu cấu trúc của các nút N8N và sử dụng các giao diện và lớp cần thiết do N8N cung cấp.
Bước 1: Xác định cấu trúc nút
Điều hướng đến thư mục của nút tùy chỉnh, thường được đặt tại packages/nodes-base/nodes
và tạo một thư mục mới cho nút tùy chỉnh của bạn:
mkdir MyCustomNode
cd MyCustomNode
Tạo một tệp được gọi là MyCustomNode.node.ts
. Đây là nơi logic và thuộc tính của nút của bạn sẽ được xác định.
Bước 2: Đặt thuộc tính nút
Xác định các thuộc tính của nút của bạn để cho phép cấu hình. Ví dụ:
import {
INodeType,
INodeTypeDescription,
} from 'n8n-workflow';
export class MyCustomNode implements INodeType {
description: INodeTypeDescription = {
displayName: 'My Custom Node',
name: 'myCustomNode',
icon: 'file:myCustomNode.svg',
group: ['transform'],
version: 1,
description: 'This is a custom node for demo purposes.',
defaults: {
name: 'My Custom Node',
color: '#007C92',
},
inputs: ['main'],
outputs: ['main'],
properties: [
{
displayName: 'Input String',
name: 'inputString',
type: 'string',
default: '',
},
{
displayName: 'Number',
name: 'number',
type: 'number',
default: 0,
}
],
};
}
Bước 3: Triển khai logic nút
Chức năng cốt lõi của nút tùy chỉnh của bạn nằm trong execute
phương pháp. Mã này chỉ ra cách nút xử lý dữ liệu.
async execute(this: IExecuteFunctions) {
const inputString = this.getNodeParameter('inputString', 0);
const number = this.getNodeParameter('number', 0);
// Custom logic goes here
const output = `${inputString} - Processed with a number: ${number}`;
this.emit([this.helpers.returnJsonArray([{ result: output }])]);
}
Bước 4: Đăng ký nút trong N8N
Để làm cho N8N biết về nút mới của bạn, bạn sẽ cần phải đăng ký nó. Mở packages/nodes-base/nodes/NodeTypes.ts
và thêm nút tùy chỉnh của bạn vào danh sách.
import { MyCustomNode } from './MyCustomNode/MyCustomNode.node';
new NodeTypesRegistry().register([
MyCustomNode,
]);
Bước 5: Kiểm tra nút của bạn
Bây giờ nút tùy chỉnh được tạo và đăng ký, chạy N8N ở chế độ phát triển để kiểm tra.
- Điều hướng đến UI N8N.
- Tạo một quy trình công việc mới.
- Thêm nút tùy chỉnh của bạn từ bảng nút.
- Định cấu hình tham số và chạy nút của bạn để xác minh đầu ra.
Thực tiễn tốt nhất để phát triển các nút tùy chỉnh
1. Thực hiện theo các quy ước đặt tên của N8N
Duy trì các quy ước đặt tên thích hợp là rất quan trọng cho khả năng sử dụng. Sử dụng Camelcase cho tên thuộc tính và tên riêng biệt rõ ràng cho các nút và tham số của bạn để ngăn chặn sự nhầm lẫn.
2. Sử dụng giao diện TypeScript
N8N được xây dựng trên TypeScript, cung cấp loại hỗ trợ an toàn và hỗ trợ công cụ tốt hơn. Xác định giao diện để cải thiện khả năng duy trì và khả năng đọc của mã nút tùy chỉnh của bạn.
3. Thực hiện xử lý lỗi
Đảm bảo thêm xử lý lỗi trong nút của bạn để nắm bắt và quản lý các ngoại lệ một cách duyên dáng. Sử dụng this.getNodeParameter
Phương thức để xác nhận các tham số đầu vào.
try {
// Your logic here
} catch (error) {
this.throwError(error);
}
4. Ghi lại mã của bạn
Nhận xét và tài liệu là cần thiết cho cả sự hiểu biết của bạn và cho các nhà phát triển trong tương lai, những người có thể làm việc trên nút của bạn. Thêm bình luận của JSDOC để mô tả các tham số và chức năng.
/**
* @returns {Promise<void>}
*/
async execute() {
// Implementation here
}
5. Giữ chức năng nút tập trung
Mỗi nút tùy chỉnh nên nhắm đến một nhiệm vụ hoặc vai trò duy nhất. Cách tiếp cận mô -đun này đơn giản hóa quy trình công việc và khả năng tái sử dụng AIDS.
Các tính năng nâng cao
Tích hợp API bên ngoài
Đôi khi, nút tùy chỉnh của bạn có thể cần giao tiếp với API bên ngoài. Sử dụng axios
hoặc fetch
để thực hiện các yêu cầu HTTP.
import axios from 'axios';
const response = await axios.get('https://api.example.com/data');
Xác thực
Nếu nút của bạn cần tương tác với API yêu cầu xác thực, bạn có thể xác định các phương thức xác thực trong cấu hình nút của mình.
authentication: {
type: 'httpHeader',
properties: [
{
displayName: 'Access Token',
name: 'accessToken',
type: 'string',
required: true,
}
],
}
Cài đặt nút tùy chỉnh
Mở rộng nút của bạn với các cài đặt bổ sung để tinh chỉnh việc sử dụng. Ví dụ: cho phép phân trang bằng cách cho phép người dùng chỉ định trang nào về kết quả để trả về.
properties: [
{
displayName: 'Page Number',
name: 'page',
type: 'number',
default: 1,
},
]
Phiên bản và khả năng tương thích ngược
Khi bạn phát triển nút tùy chỉnh của mình, hãy xem xét phiên bản ngữ nghĩa để truyền đạt các thay đổi một cách hiệu quả. Duy trì khả năng tương thích ngược khi thích hợp để tránh phá vỡ các quy trình công việc hiện có phụ thuộc vào nút của bạn.
Xuất bản nút tùy chỉnh của bạn
Khi sẵn sàng, bạn có thể chia sẻ nút tùy chỉnh của bạn với cộng đồng. Thực hiện theo các bước sau:
- Ghi lại nút của bạn: Cung cấp tài liệu rõ ràng về cách cài đặt và sử dụng nút tùy chỉnh của bạn.
- Gói mã của bạn: Sử dụng các công cụ như
npm
Để đóng gói nút của bạn để phân phối. - Xuất bản sang GitHub hoặc NPM: Làm cho nút tùy chỉnh của bạn có thể truy cập được cho người khác bằng cách xuất bản nó lên các nền tảng như GitHub hoặc NPM.
Tóm lại, các khả năng với N8N và các nút tùy chỉnh hầu như không giới hạn. Với hướng dẫn này, bạn nên được trang bị để tạo, kiểm tra và chia sẻ các nút tùy chỉnh của mình, mở rộng khả năng sử dụng của N8N như một công cụ tự động hóa. Nắm bắt sức mạnh của tự động hóa bằng cách xây dựng các giải pháp phù hợp với nhu cầu cụ thể của bạn và chia sẻ những khám phá của bạn với cộng đồng N8N để truyền cảm hứng cho sự đổi mới hơn nữa.