服务器解析get和post请求

服务器接受表单提交的内容,解析get和post请求

<form action="http://localhost:8080" method="get">
<!--<form action="http://localhost:8080/index.html" method="post">-->
    <label>
        <input type="text" name="name">
    </label><br>
    <!--    <input type="file" name="img"><br>-->
    <label>
        <input type="password" name="password">
    </label><br><br>
    <label>
        <textarea name="text"></textarea>
    </label><br>
    <input type="submit" value="submit">
</form>

get

const http = require('http');
const url_hb = require('url');

let serve = http.createServer(function (request,response) {
   let obj = url_hb.parse(request.url,true);
   console.log(obj.pathname,obj.query);
   response.write('ok');
   response.end();
});

serve.listen(8080);

post

const http = require('http');
const url_hb = require('url');
/*post请求一般用于较大的文件的上传,所以有了
data事件,事件的执行次数由上传文件的大小决定,每次执行时上传文件的一部分,
end事件,只执行一次,在数据接受完成时触发
* */
let server = http.createServer(function (req,res) {
    let str = '';//接收传来的数据
    let i = 0;

    req.on('data',function (data) {
        str += data;//每次获取的数据放到str中,目前只是字符串
        i++;
    });
    req.on('end',function () {
        console.log(str);
        console.log(i);//查看分了几次传输
    })
});
server.listen(8080);

将get和post以及文件请求配合使用

const http = require('http');
const fs = require('fs');
const url_hb = require('url');
const queryString = require('querystring');

//get
let server = http.createServer(function (req,res) {
    //get
    let obj = url_hb.parse(req.url,true);
    var url = obj.pathname;
    const GET = obj.query;

    //post
    var str = '';
    req.on('data',function (data) {
        str += data;
    });
    req.on('end',function () {
        var POST = queryString.decode(str);

        /*
        * 到这已经获取
        * url - 要请求的信息
        * GET - get请求
        * POST- post请求
        * */
        console.log(url,GET,POST,);
    });

    //readFile
    let filename = 'hongbinFile'+url;
    fs.readFile(filename,function (err,data) {
        if (err){
            res.write('404');
        }else{
            res.write(data);
        }
        res.end();
    });
});

server.listen(8080);

版权申明:本站文章均来自网络,如有侵权,请联系01056159998 邮箱:itboby@foxmail.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

猜你还会喜欢下面的内容

    无相关信息

中国领先的互联网域名及云服务提供商

为您提供域名,比特币,P2P,大数据,云计算,虚拟主机,域名交易最新资讯报道

域名注册云服务器