服务器解析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);
发布了117 篇原创文章 · 获赞 146 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/printf_hello/article/details/104953023