JavaScript:
การอ่านอาร์กิวเมนต์จากคำสั่งลำดับ
วิธีการ:
นี่คือวิธีที่ตรงไปตรงมาในการทำบน Node.js:
// process.argv ประกอบด้วยอาร์กิวเมนต์บรรทัดคำสั่ง
const args = process.argv.slice(2);
console.log(args);
// รันสคริปต์นี้ด้วย: node yourscript.js firstArg secondArg
ตัวอย่างผลลัพธ์เมื่อคุณรัน node yourscript.js pineapple 42
:
['pineapple', '42']
การใช้แพ็คเกจเช่น yargs
ทำให้ชีวิตง่ายขึ้น โดยให้คุณกำหนดและเข้าถึงอาร์กิวเมนต์ด้วยชื่อ
// ติดตั้งด้วย npm install yargs
const yargs = require('yargs/yargs');
const { hideBin } = require('yargs/helpers');
const argv = yargs(hideBin(process.argv)).argv;
console.log(argv);
// รันอย่างนี้ด้วย: node yourscript.js --fruit pineapple --number 42
และคุณจะได้:
{ fruit: 'pineapple', number: '42' }
สะอาดและชัดเจน พร้อมพารามิเตอร์ที่มีชื่อ
ดำดิ่งลึก
ก่อนหน้านี้ อาร์กิวเมนต์ถูกอ่านในภาษา C โดยใช้ argc
และ argv
ในฟังก์ชัน main
ใน Node.js, process.argv
เป็นตัวเลือกหลัก มันเป็นอาร์เรย์ที่องค์ประกอบแรกคือพาธไปยังโปรแกรมทำงาน node, องค์ประกอบที่สองคือชื่อไฟล์สคริปต์, และที่เหลือคืออาร์กิวเมนต์จริงของคุณ
yargs
เหมาะสำหรับแอพซับซ้อน: มันแยกวิเคราะห์อาร์กิวเมนต์เป็นออบเจกต์ที่เป็นประโยชน์, จัดการค่าเริ่มต้น, และแม้กระทั่งสร้างข้อความช่วยเหลือโดยอัตโนมัติ
ยังมีแพ็คเกจ minimist
ซึ่งเป็นทางเลือกที่เบากว่า yargs
หากคุณชอบสไตล์มินิมอล
ลึกลงไป, Node.js ใช้ process.binding('options')
ของ V8 สำหรับการวิเคราะห์ซึ่งไม่เปิดเผยให้ผู้ใช้ทั่วไป วิธีการภายในนี้มีประโยชน์มากมายภายใน, จัดการการวิเคราะห์และการเรียกคืนตัวเลือกบรรทัดคำสั่ง
ดูเพิ่มเติม
- เอกสารการอ้างอิง process.argv ของ Node.js: https://nodejs.org/docs/latest/api/process.html#process_process_argv
- ที่เก็บ GitHub ของ Yargs: https://github.com/yargs/yargs
- Minimist บน npm: https://www.npmjs.com/package/minimist