node.js post方式的表单提交

来源:互联网 发布:淘宝如何转接人工客服 编辑:程序博客网 时间:2024/05/17 09:01

表单页面:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body><form action="http://127.0.0.1:3000/dopost" method="post">    <p>        姓名:<input type="text" name="name">    </p>    <p>        性别:<input type="radio" name="sex" value="男"><input type="radio" name="sex" value="女"></p>    <p>        爱好:        <input  type="checkbox" name="hobby" value="读书">读书        <input  type="checkbox" name="hobby" value="玩游戏">玩游戏        <input  type="checkbox" name="hobby" value="睡觉">睡觉    </p>    <p>        <input type="submit" value="提交">    </p></form></body></html>

相比较GET请求,POST请求比较复杂。因为Node.js认为,使用POST请求时,数据量会比较多。为了追求极致的效率,它将数据拆分成为了众多小的数据块(chunk),然后通过特定监听事件,将这些小数据块有序传递给回调函数。

/** * Created by webrx on 2017/3/20. */var http = require("http");var querystring = require("querystring");var server = http.createServer(function (req,res) {    //如果你的请求地址是这个,并且提交方式是post    if(req.url == '/dopost' && req.method.toLowerCase() =='post'){        // 定义了一个post变量,用于暂存请求体的信息        var postData = '';        //通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中        req.addListener("data",function (chunk) {            postData += chunk;        });        req.addListener("end",function () {           var datastring = postData.toString();            console.log(datastring);            res.end("success");// 在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。            var dataObj = querystring.parse(datastring);            console.log(dataObj.name);            console.log(dataObj.sex);            console.log(dataObj.hobby);        })    }});server.listen(3000,'127.0.0.1');

这里写图片描述
更过学习点击这里写链接内容

0 0