Giao diện
Cấu hình node - JavaScript
Node chạy code JavaScript tùy chỉnh trong môi trường sandbox an toàn, cho phép xử lý logic phức tạp không thể cấu hình bằng UI.
Bảng tham số cấu hình
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|---|---|---|---|---|
code | string | Có | — | Code JavaScript cần thực thi |
timeout | number | Không | 5000 | Thời gian tối đa chạy (ms) |
scope | object | Không | {} | Biến từ workflow context inject vào scope của code |
Dữ liệu đầu ra (Output)
| Tên | Kiểu | Mô tả |
|---|---|---|
result | any | Giá trị return từ code (bất kỳ kiểu JSON-serializable) |
error | object | Thông tin lỗi nếu code throw exception |
API khả dụng trong sandbox
| API | Có sẵn | Ghi chú |
|---|---|---|
Math, Date, JSON | Có | Built-in JavaScript |
String, Array, Object | Có | Prototype methods |
console.log | Có | Ghi vào workflow log |
async/await | Có | Hỗ trợ bất đồng bộ |
setTimeout, setInterval | Không | Dùng async/await thay thế |
require, import | Không | Sandbox restriction |
fetch, XMLHttpRequest | Không | Dùng HTTP Request node |
fs, process, child_process | Không | OS access bị chặn |
Khi nào dùng JavaScript node
| Nhu cầu | Dùng node |
|---|---|
| Phép tính đơn giản | Simple Function |
| Công thức với scope mapping | Dynamic Calculation |
| Logic phức tạp, vòng lặp, string manipulation | JavaScript |
| Query/filter JSON | JSON Query |
Lưu ý quan trọng
- Sandbox không có
require,fetch,fs- chỉ xử lý dữ liệu thuần - Code phải return giá trị cuối cùng - giá trị này trở thành
resultcủa node - Timeout mặc định 5 giây - tăng lên nếu xử lý dữ liệu lớn
- Infinite loop sẽ bị kill khi timeout - cẩn thận với while loop
- Kết quả phải serialize được (JSON) - không return function, Symbol, hoặc circular reference
- Biến từ scope được inject trực tiếp: code truy cập
variableNamethay vìscope.variableName