Giao diện
Ví dụ sử dụng - JavaScript
Ví dụ 1: Tính giá theo bảng chiết khấu nhiều tầng
Tính giá sau chiết khấu theo số lượng: 1-10 giữ nguyên, 11-50 giảm 5%, 51-100 giảm 10%, trên 100 giảm 15%.
Cấu hình node JavaScript:
scope:{ "price": "record.unitPrice", "qty": "record.quantity" }
javascript
const tiers = [
{ min: 101, discount: 0.15 },
{ min: 51, discount: 0.10 },
{ min: 11, discount: 0.05 },
{ min: 1, discount: 0 }
];
const tier = tiers.find(t => qty >= t.min);
return price * qty * (1 - tier.discount);Logic phân tầng phức tạp không thể cấu hình bằng UI. JavaScript node cho phép viết logic tùy ý rồi return kết quả.
Ví dụ 2: Parse thông tin từ email content
Trích xuất mã đơn hàng và số tiền từ nội dung email text.
Cấu hình node JavaScript:
scope:{ "emailBody": "webhookData.body.content" }
javascript
const orderMatch = emailBody.match(/Order[:#]\s*(\w+)/i);
const amountMatch = emailBody.match(/(\d[\d,.]+)\s*(VND|USD)/i);
return {
orderId: orderMatch ? orderMatch[1] : null,
amount: amountMatch ? parseFloat(amountMatch[1].replace(/,/g, '')) : 0,
currency: amountMatch ? amountMatch[2] : 'VND'
};Regex và string manipulation là thế mạnh của JavaScript node. Kết quả trả về là object chứa thông tin đã parse.
Ví dụ 3: Gộp và sắp xếp dữ liệu từ nhiều nguồn
Kết hợp sản phẩm từ 2 API khác nhau, loại bỏ trùng lặp, sắp xếp theo giá.
Cấu hình node JavaScript:
scope:{ "list1": "api1.body.items", "list2": "api2.body.items" }
javascript
const merged = [...list1, ...list2];
const unique = merged.filter((item, idx, arr) =>
arr.findIndex(i => i.sku === item.sku) === idx
);
return unique.sort((a, b) => a.price - b.price);Array processing phức tạp (merge, deduplicate, sort) vượt quá khả năng cấu hình UI. JavaScript node xử lý gọn trong vài dòng code.