วิธีที่ง่ายที่สุดที่ฉันรู้คือใช้แพ็คเกจ "child_process" ซึ่งมาพร้อมกับโหนด
จากนั้นคุณสามารถทำสิ่งที่ชอบ:
const spawn = require("child_process").spawn;
const pythonProcess = spawn('python',["path/to/script.py", arg1, arg2, ...]);
แล้วสิ่งที่คุณต้องทำคือการทำให้แน่ใจว่าคุณimport sys
ในสคริปต์หลามของคุณแล้วคุณสามารถเข้าถึงarg1
การใช้ sys.argv[1]
, arg2
ใช้ sys.argv[2]
และอื่น ๆ
ในการส่งข้อมูลกลับไปที่โหนดให้ทำดังต่อไปนี้ในสคริปต์ python:
print(dataToSendBack)
sys.stdout.flush()
จากนั้นโหนดสามารถฟังข้อมูลโดยใช้:
pythonProcess.stdout.on('data', (data) => {
// Do something with the data returned from python script
});
เนื่องจากสิ่งนี้อนุญาตให้ส่งผ่านอาร์กิวเมนต์จำนวนมากไปยังสคริปต์โดยใช้การวางไข่คุณสามารถปรับโครงสร้างสคริปต์ไพ ธ อนเพื่อให้อาร์กิวเมนต์ตัวใดตัวหนึ่งตัดสินใจเลือกฟังก์ชันที่จะเรียกใช้และอาร์กิวเมนต์อื่นจะถูกส่งผ่านไปยังฟังก์ชันนั้น ฯลฯ
หวังว่านี่ชัดเจน แจ้งให้เราทราบหากมีบางสิ่งต้องการความกระจ่าง