Wrapper minimalis tanpa ketergantungan untuk menghosting skrip CGI dengan dukungan HTTP/1.1. Dirilis di bawah Lisensi MIT.
Instal cgi-core
versi stabil terbaru :
npm instal cgi-core
Kemudian, mulai server CGI:
npx cgi-server --filePath ./cgi-bin
Berikut contoh cara setting server CGI dengan cgi-core
:
import { createServer } from "node:http";import { createHandler } from "cgi-core";// buat server http yang menangani permintaan CGI di bawah jalur url /cgi-binconst handler = createHandler({ urlPath: "/cgi-bin", jalur file: "./cgi-bin", ekstensi: {"/usr/bin/Perl": ["pl", "cgi"],"/usr/bin/python": ["py"],"/usr/local/bin/node": [" js", "simpul"], }, debugOutput: false,});const app = createServer(async (req, res) => { const requestHandled = menunggu handler(req, res); if (!requestHandled) {// di sini, tangani perutean apa pun di luar urlPath === '/cgi-bin'res.writeHead(200, { "Content-Type": "text/plain" });res.end( "di luar urlPath"); }});app.listen(3000);
Contoh penggunaan menggunakan Express.
Url dasar untuk perutean. Bawaan: '/cgi-bin'
Jalur file tempat skrip CGI berada. Sangat disarankan untuk menetapkan nilai untuk filePath
(contoh: './cgi-bin'). Bawaan: process.cwd()
Objek yang berisi nilai ekstensi file untuk jalur juru bahasa tertentu. Jika tidak ada jalur penerjemah yang ditemukan untuk ekstensi file, skrip CGI akan dipanggil sebagai executable mandiri. Bawaan:
// pada sistem POSIX{ "/usr/bin/Perl": ["pl", "cgi"], "/usr/bin/python": ["py"], "/usr/local/bin/node": ["js", "node"]}// pada sistem Windows{ "perl": ["pl", "cgi"], "piton": ["py"], "simpul": ["js", "simpul"]}
Ekstensi file untuk mencari skrip indeks CGI di direktori mana pun. Bawaan: 'js'
Setel true untuk mengaktifkan keluaran debug. Bawaan: false
Setel true untuk mencetak log permintaan HTTP ke STDOUT. Bawaan: false
Ukuran permintaan HTTP yang diizinkan dan payload respons dalam byte. Bawaan: 2 * 1024 * 1024
(2 MB)
Ukuran potongan data payload permintaan HTTP dalam byte. Bawaan: 16 * 1024
(16 KB)
Ukuran potongan data muatan respons HTTP dalam byte. Bawaan: 16 * 1024
(16 KB)
Objek yang berisi muatan respons HTTP khusus per kode status. Bawaan: {}
// Contoh:{ 404: {content: ` 404: File tidak ditemukan `,contentType: "text/html" }, 500: {content: ` 500: Kesalahan server internal `,contentType: "text/html" }}
Objek yang berisi variabel lingkungan khusus untuk diteruskan ke skrip CGI. Bawaan: {}
// Contoh:{ SERVER_ADMIN: "[email protected]", ANOTHER_VAR: "nilai lain"}
Perintah cgi-server
dapat digunakan untuk menjalankan server HTTP untuk melayani skrip CGI.
npx cgi-server --port 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
Selain variabel standar terkait HTTP, variabel lingkungan CGI berikut ini didukung:
CONTENT_LENGTH CONTENT_TYPE PATH PATH_INFO SCRIPT_FILENAME SCRIPT_NAME SERVER_PROTOCOL SERVER_SOFTWARE QUERY_STRING REQUEST_METHOD REQUEST_URI
cgi-core
dirilis di bawah Lisensi MIT.
100% Gratis: cgi-core
dapat digunakan secara bebas baik dalam proyek berpemilik maupun sumber terbuka.
Atribusi diperlukan: Anda harus menyimpan nama penulis dan informasi lisensi dalam kode yang didistribusikan. Item ini tidak perlu dilihat oleh pengguna dan dapat tetap berada dalam basis kode.