Expressions#
Expressions เป็น feature ที่ทรงพลังซึ่งถูกนำไปใช้ใน n8n nodes ทั้งหมด ช่วยให้สามารถตั้งค่าพารามิเตอร์ของ node แบบไดนามิกตามข้อมูลจาก:
- การทำงานของ node ก่อนหน้า
- Workflow
- สภาพแวดล้อม n8n ของคุณ
คุณยังสามารถรัน JavaScript ภายใน expression ได้ ทำให้เป็นวิธีที่สะดวกและง่ายในการจัดการข้อมูลให้เป็นค่าพารามิเตอร์ที่มีประโยชน์โดยไม่ต้องเขียน code เพิ่มเติมมากมาย
n8n สร้างและใช้ภาษา templating ที่เรียกว่า Tournament และขยายความสามารถด้วย custom methods and variables และ data transformation functions ฟีเจอร์เหล่านี้ช่วยให้การทำงานทั่วไปง่ายขึ้น เช่น การดึงข้อมูลจาก nodes อื่นๆ หรือการเข้าถึง metadata ของ workflow
นอกจากนี้ n8n ยังรองรับไลบรารีสองตัว:
Data in n8n
เมื่อเขียน expressions การทำความเข้าใจโครงสร้างข้อมูลและพฤติกรรมใน n8n จะเป็นประโยชน์ โปรดดู Data สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทำงานกับข้อมูลใน workflows ของคุณ
Writing expressions#
วิธีใช้ expression เพื่อตั้งค่าพารามิเตอร์:
- เลื่อนเมาส์ไปเหนือพารามิเตอร์ที่คุณต้องการใช้ expression
- เลือก Expressions ในตัวสลับ Fixed/Expression
- เขียน expression ของคุณในพารามิเตอร์ หรือเลือก Open expression editor
เพื่อเปิด expression editor หากคุณใช้ expression editor คุณสามารถเรียกดูข้อมูลที่มีอยู่ใน Variable selector ได้ Expressions ทั้งหมดมีรูปแบบ
{{ your expression here }}
Example: Get data from webhook body#
พิจารณาสถานการณ์ต่อไปนี้: คุณมี webhook trigger ที่รับข้อมูลผ่าน webhook body คุณต้องการดึงข้อมูลบางส่วนนั้นมาใช้ใน workflow
ข้อมูล webhook ของคุณมีลักษณะคล้ายกับนี้:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
ใน node ถัดไปใน workflow คุณต้องการรับเฉพาะค่าของ city
คุณสามารถใช้ expression ต่อไปนี้:
1 |
|
Expression นี้:
- เข้าถึงข้อมูลรูปแบบ JSON ที่เข้ามาโดยใช้ตัวแปร
$json
ที่กำหนดเองของ n8n - ค้นหาค่าของ
city
(ในตัวอย่างนี้คือ "New York") โปรดทราบว่าตัวอย่างนี้ใช้ синтаксис JMESPath เพื่อ query ข้อมูล JSON คุณยังสามารถเขียน expression นี้เป็น{{$json['body']['city']}}
ได้
Example: Writing longer JavaScript#
Expression ประกอบด้วย JavaScript หนึ่งบรรทัด ซึ่งหมายความว่าคุณไม่สามารถทำสิ่งต่างๆ เช่น การกำหนดค่าตัวแปร หรือการดำเนินการแบบสแตนด์อโลนหลายรายการได้
เพื่อให้เข้าใจข้อจำกัดของ JavaScript ใน expressions และเริ่มคิดเกี่ยวกับวิธีแก้ปัญหา ลองดูโค้ดสองตัวอย่างต่อไปนี้ ทั้งสองตัวอย่างใช้ไลบรารีวันที่และเวลา Luxon เพื่อหาเวลาระหว่างวันที่สองวันในหน่วยเดือน และครอบโค้ดด้วยวงเล็บปีกกา เหมือนกับ expression
อย่างไรก็ตาม ตัวอย่างแรกไม่ใช่ expression ที่ถูกต้องของ n8n:
1 2 3 4 5 6 7 8 9 10 11 |
|
ในขณะที่ตัวอย่างที่สองถูกต้อง:
1 |
|
Common issues#
สำหรับข้อผิดพลาดหรือปัญหาทั่วไปเกี่ยวกับ expressions และขั้นตอนการแก้ไขที่แนะนำ โปรดดูที่ Common Issues