nodejs-cgi

nodejs-based cgi

Usage no npm install needed!

<script type="module">
  import nodejsCgi from 'https://cdn.skypack.dev/nodejs-cgi';
</script>

README

CGI(Common Gateway Interface)

通用网关接口(Common Gateway Interface/CGI)是一种重要的互联网技
术,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数
据。CGI描述了客户端和服务器程序之间传输数据的一种标准。

Installing

npm install nodejs-cgi

Using

通过一个上传文件的例子说明 cgi 的功能。具体操作过程如下:
1. 首先用户使用网页浏览器浏览文件upload.html,这个文件存放在服务
   器的docs目录下。
2. upload.html中有个form表单。用户需要选择上传文件,写一行文件说
   明,然后提交。
   <form method="post" action="/u" enctype="multipart/form-data">
      上传文件:<input type="file" name="upload"/>
      文件说明:<input type="text" name="readme"/>
      <input type="submit" value="提交"/>
   </form>
3. 上传文件和文件说明由服务器端/u处理。/u要完成的功能是,把接收的
   文件原样返回,在网页浏览器中显示出来。

服务器端程序如下:

var http = require('http');
var cgi  = require('nodejs-cgi');

function upload(req, res) {
    // req.body.upload存放上传文件; req.body.readme存放文件说明
    res.writeHead(200, {'Content-Type': req.body.upload.type});
    res.end(req.body.upload.file);
}

var map = {
    bin : {
        '/u': upload            // 映射到upload函数
    },
    exp : {			// 使用正则表达式设置过滤条件
    },
    doc : 'docs'                // upload.html存放目录
};

http.createServer(cgi.route(map)).listen(80);

License