Code node common issues#
นี่คือข้อผิดพลาดและปัญหาที่พบบ่อยกับ Code node พร้อมวิธีแก้ไขหรือแนวทางตรวจสอบ
Code doesn't return items properly#
ข้อผิดพลาดนี้เกิดขึ้นเมื่อโค้ดใน Code node ของคุณไม่ได้ return ข้อมูลในรูปแบบที่ n8n คาดหวัง
ใน n8n ข้อมูลที่ส่งต่อระหว่าง node จะเป็น array ของ object โดยแต่ละ object จะมี key ชื่อ json
ครอบข้อมูลอีกที
1 2 3 4 5 6 7 |
|
วิธีตรวจสอบปัญหานี้:
- อ่าน data structure เพื่อเข้าใจโครงสร้างข้อมูลที่ Code node ได้รับและข้อกำหนดสำหรับการ return ข้อมูลออกจาก node
- ทำความเข้าใจการทำงานของ data item และการเชื่อมโยงข้อมูลจาก node ก่อนหน้าด้วย item linking
A 'json' property isn't an object#
ข้อผิดพลาดนี้เกิดขึ้นเมื่อ Code node return ข้อมูลที่ key json
ไม่ได้ชี้ไปที่ object
เช่น ถ้าคุณตั้งค่า json
ให้เป็น array แทน object:
1 2 3 4 5 6 7 |
|
วิธีแก้ไข: ให้แน่ใจว่า key json
อ้างอิง object เสมอ
1 2 3 4 5 6 7 |
|
Code doesn't return an object#
ข้อผิดพลาดนี้อาจเกิดขึ้นเมื่อ Code node ของคุณไม่ได้ return อะไรเลย หรือ return ผลลัพธ์ที่ไม่ถูกต้อง
วิธีแก้ไข: ให้แน่ใจว่า Code node ของคุณ return expected data structure:
1 2 3 4 5 6 7 |
|
ข้อผิดพลาดนี้อาจเกิดขึ้นถ้าโค้ดของคุณ return 'undefined'
แทนผลลัพธ์ที่ต้องการ กรณีนี้ให้ตรวจสอบว่าข้อมูลที่คุณอ้างอิงใน Code node มีอยู่จริงในทุก execution และมีโครงสร้างตรงกับที่โค้ดของคุณคาดหวัง
'import' and 'export' may only appear at the top level#
ข้อผิดพลาดนี้เกิดขึ้นถ้าคุณพยายามใช้ import
หรือ export
ใน Code node ซึ่ง n8n ไม่รองรับใน JavaScript sandbox ให้ใช้ require
แทน
วิธีแก้ไข: เปลี่ยนจาก import
เป็น require
เช่น
1 2 3 4 |
|
Cannot find module '<module>'#
ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณใช้ require
ใน Code node แล้ว n8n หา module ไม่เจอ
Only for self-hosted
n8n ไม่รองรับการ import module ใน Cloud version
ถ้าคุณ self-hosting n8n ให้ทำตามขั้นตอนนี้:
- ติดตั้ง module ลงใน environment เดียวกับที่รัน n8n
- ถ้าใช้ npm ให้ติดตั้ง module ใน environment เดียวกับ n8n
- ถ้าใช้ Docker ต้อง extend image n8n ด้วย custom image ที่มี module ที่ต้องการ
- ตั้งค่า environment variable
NODE_FUNCTION_ALLOW_BUILTIN
และNODE_FUNCTION_ALLOW_EXTERNAL
ดูตัวอย่าง เพื่ออนุญาต import module
Using global variables#
บางครั้งคุณอาจอยากเก็บหรือดึงข้อมูลแบบ global ที่เกี่ยวกับ workflow ข้าม execution หรือในแต่ละ execution เช่น อยากเก็บวันที่ของ report ก่อนหน้าไว้ใช้ใน report รอบถัดไป
ให้ใช้ static data ในโค้ดของคุณเพื่อ set, update, และดึงข้อมูล workflow-level สามารถจัดการข้อมูลแบบ global หรือผูกกับ node เฉพาะก็ได้
Use Remove Duplicates when possible
ถ้าคุณอยากใช้ตัวแปรเพื่อป้องกันการประมวลผลข้อมูลซ้ำ ลองใช้ Remove Duplicates node แทน Remove Duplicates node จะช่วยเก็บข้อมูลข้าม execution เพื่อป้องกันการประมวลผลซ้ำ