Wrapper ที่เรียบง่ายและไม่ต้องพึ่งพาสำหรับการโฮสต์สคริปต์ CGI พร้อมรองรับ HTTP/1.1 เผยแพร่ภายใต้ใบอนุญาต MIT
ติดตั้ง cgi-core
เวอร์ชันเสถียรล่าสุด:
npm ติดตั้ง cgi-core
จากนั้นเริ่มเซิร์ฟเวอร์ CGI:
npx cgi-เซิร์ฟเวอร์ --filePath ./cgi-bin
นี่คือตัวอย่างวิธีตั้งค่าเซิร์ฟเวอร์ CGI ด้วย cgi-core
:
นำเข้า { createServer } จาก "node:http";นำเข้า { createHandler } จาก "cgi-core";// สร้างเซิร์ฟเวอร์ http ที่จัดการคำขอ CGI ภายใต้เส้นทาง url /cgi-binconst handler = createHandler({ URLPath: "/cgi-bin", เส้นทางไฟล์: "./cgi-bin", ส่วนขยาย: {"/usr/bin/perl": ["pl", "cgi"],"/usr/bin/python": ["py"],"/usr/local/bin/node": [" js", "โหนด"], - debugOutput: false,});const app = createServer(async (req, res) => { const requestHandled = รอตัวจัดการ (req, res); ถ้า (!requestHandled) {// ที่นี่ ให้จัดการเส้นทางภายนอก urlPath === '/cgi-bin'res.writeHead(200, { "Content-Type": "text/plain" });res.end( "นอก urlPath"); }});app.listen(3000);
ตัวอย่างการใช้งาน Express
URL ฐานสำหรับการกำหนดเส้นทาง ค่าเริ่มต้น: '/cgi-bin'
เส้นทางไฟล์ซึ่งมีสคริปต์ CGI อยู่ ขอแนะนำอย่างยิ่งให้ตั้งค่าสำหรับ filePath
(ตัวอย่าง: './cgi-bin') ค่าเริ่มต้น: process.cwd()
ออบเจ็กต์ที่มีค่านามสกุลไฟล์สำหรับเส้นทางล่ามที่กำหนด หากไม่พบเส้นทางล่ามสำหรับนามสกุลไฟล์ สคริปต์ CGI จะถูกเรียกว่าเป็นไฟล์ปฏิบัติการแบบสแตนด์อโลน ค่าเริ่มต้น:
// บนระบบ POSIX{ "/usr/bin/perl": ["pl", "cgi"], "/usr/bin/python": ["py"], "/usr/local/bin/node": ["js", "node"]}// บนระบบ Windows{ "perl": ["pl", "cgi"], "หลาม": ["py"], "โหนด": ["js", "โหนด"]}
นามสกุลไฟล์เพื่อค้นหาสคริปต์ CGI ดัชนีในไดเร็กทอรีที่กำหนด ค่าเริ่มต้น: 'js'
ตั้งค่าเป็น true เพื่อเปิดใช้งานเอาต์พุตการดีบัก ค่าเริ่มต้น: false
ตั้งค่าเป็นจริงเพื่อพิมพ์บันทึกคำขอ HTTP เป็น STDOUT ค่าเริ่มต้น: false
ขนาดของคำขอ HTTP ที่อนุญาตและเพย์โหลดการตอบกลับเป็นไบต์ ค่าเริ่มต้น: 2 * 1024 * 1024
(2 MB)
ขนาดของส่วนข้อมูลเพย์โหลดคำขอ HTTP มีหน่วยเป็นไบต์ ค่าเริ่มต้น: 16 * 1024
(16 KB)
ขนาดของส่วนข้อมูลเพย์โหลดการตอบกลับ HTTP มีหน่วยเป็นไบต์ ค่าเริ่มต้น: 16 * 1024
(16 KB)
ออบเจ็กต์ที่มีเพย์โหลดการตอบสนอง HTTP ที่กำหนดเองต่อรหัสสถานะ ค่าเริ่มต้น: {}
// ตัวอย่าง:{ 404: {content: ` 404: ไม่พบไฟล์ `,contentType: "text/html" - 500: {เนื้อหา: ` 500: ข้อผิดพลาดเซิร์ฟเวอร์ภายใน `,contentType: "text/html" -
ออบเจ็กต์ที่มีตัวแปรสภาพแวดล้อมที่กำหนดเองเพื่อส่งผ่านไปยังสคริปต์ CGI ค่าเริ่มต้น: {}
// ตัวอย่าง:{ SERVER_ADMIN: "[email protected]", ANOTHER_VAR: "ค่าอื่น"}
คำสั่ง cgi-server
สามารถใช้เพื่อเรียกใช้เซิร์ฟเวอร์ HTTP เพื่อให้บริการสคริปต์ CGI
เซิร์ฟเวอร์ npx cgi -- พอร์ต 3001 --urlPath /cgi-bin --filePath ./cgi-bin
-h, --help Display help --urlPathSet base url path for routing --filePath Set file path where the CGI scripts are located --indexExtension Set file extension to lookup for index files -d, --debugOutput Output errors for HTTP status 500 -l, --logRequests Log HTTP requests to STDOUT -p, --port Set the port to listen on
นอกเหนือจากตัวแปรมาตรฐานที่เกี่ยวข้องกับ HTTP แล้ว ยังรองรับตัวแปรสภาพแวดล้อม CGI ต่อไปนี้:
CONTENT_LENGTH CONTENT_TYPE PATH PATH_INFO SCRIPT_FILENAME SCRIPT_NAME SERVER_PROTOCOL SERVER_SOFTWARE QUERY_STRING REQUEST_METHOD REQUEST_URI
cgi-core
ได้รับการเผยแพร่ภายใต้ใบอนุญาต MIT
ฟรี 100%: cgi-core
สามารถใช้งานได้อย่างอิสระทั้งในโครงการที่เป็นกรรมสิทธิ์และโอเพ่นซอร์ส
ต้องแสดงที่มา: คุณต้องรักษาชื่อผู้เขียนและข้อมูลใบอนุญาตไว้ในรหัสที่แจกจ่าย รายการเหล่านี้ไม่จำเป็นต้องเผชิญหน้ากับผู้ใช้และสามารถคงอยู่ภายในโค้ดเบสได้