一个简约的、零依赖的包装器,用于托管具有 HTTP/1.1 支持的 CGI 脚本。根据 MIT 许可证发布。
安装最新稳定版本的cgi-core
:
npm 安装 cgi-core
然后,启动 CGI 服务器:
npx cgi-server --filePath ./cgi-bin
以下是如何使用cgi-core
设置 CGI 服务器的示例:
import { createServer } from "node:http";import { createHandler } from "cgi-core";// 创建一个处理 url 路径下的 CGI 请求的 http 服务器 /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); if (!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
设置 true 以将 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: {content: ` 500: 内部服务器错误 `,contentType: "text/html" }}
包含要传递给 CGI 脚本的自定义环境变量的对象。默认: {}
// 例子:{ SERVER_ADMIN:“[email protected]”, ANOTHER_VAR:“另一个值”}
命令cgi-server
可用于运行 HTTP 服务器来为 CGI 脚本提供服务。
npx cgi-server --端口 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
可以在专有和开源项目中自由使用。
需要注明出处:您必须在任何分发的代码中保留作者姓名和许可信息。这些项目不需要面向用户,可以保留在代码库中。