Skip to content

Function Node (Code Node)

Mục tiêu bài học

Sau bài học này, bạn sẽ:

  • Viết code JavaScript/TypeScript để xử lý dữ liệu phức tạp
  • Hiểu sự khác biệt giữa chế độ Run Once for All ItemsRun for Each Item
  • Sử dụng các thư viện ngoài (external libraries)

1. Code Node

Khi các node có sẵn không đủ đáp ứng nhu cầu, Code Node là giải pháp cuối cùng.

Hai chế độ chạy (Mode)

Chế độInputOutputKhi nào dùng?
Run Once for All Items$input.all() (Mảng)Mảng ObjectsGom nhóm, tính tổng, xử lý mảng.
Run for Each Item$input.item (Object)ObjectXử lý từng dòng độc lập.

2. Ví dụ: Thêm trường mới (Run Once)

javascript
// Lặp qua tất cả item
const results = [];

for (const item of $input.all()) {
  const json = item.json;

  // Logic xử lý
  json.fullName = `${json.firstName} ${json.lastName}`;
  json.isAdult = json.age >= 18;

  results.push({ json });
}

return results;

3. Các biến và hàm hỗ trợ

  • $input.all(): Lấy tất cả input.
  • $input.first(): Lấy input đầu tiên.
  • $env: Biến môi trường.
  • $now: Thời gian hiện tại.

4. Sử dụng thư viện ngoài

Cần cấu hình biến môi trường Docker:

yaml
NODE_FUNCTION_ALLOW_EXTERNAL=lodash,moment,axios

Sử dụng trong Code:

javascript
const _ = require('lodash');

Tổng kết

Code Node biến n8n thành môi trường lập trình thực thụ.

Bài học tiếp theo

Làm sao để xử lý khi workflow gặp lỗi?

Xử lý lỗi (Error Handling)

Internal documentation for iNET Portal