服务器接受表单提交的内容,解析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);