(八) Node的POST和GET获取数据的方法

Node的POST和GET获取数据的方法

  • 第一步必须要加载querystring模块
  • 第二部路径分离里面千万注意判断的是pathname
  • 第三步from表单里面必须写name
  • 第四部要是get直接就是querystring.parse(urlobj.query)
  • 要是get请求必须放到缓存池,然后利用end结束方法来调用

具体见代码

var http = require('http');  //加载HTTP模块
var server = http.createServer();  //创建对象
var fs = require("fs");  //加载文件模块
var url = require("url");  //加载url模块
var querystring = require('querystring');  //增加数据转义模块,很少用了现在都利用URL的第二个参数
server.listen(8080,'127.0.0.1');
var htmldir = __dirname+"/html/";
server.on('request',function(req,res){
    var urlobj = url.parse(req.url);  //获取到路径
   //得到查询部分,由于写了true,那么就是一个对象
    var queryObj = url.parse(req.url,true).query;  //获取到GET请求传进来的参数,JSON包格式
    //var name = queryObj.name ;  //获取到名字  
    //var age = queryObj.age;  //获取到年龄
    //var sex = queryObj.sex;  //获取到性别
    switch(urlobj.pathname)  //这里必须判断的路径name别的不行
    {
        case "/":
            openFile(htmldir+"index.html",res);
            break;
        case "/login":
            openFile(htmldir+"login.html",res);
            break;
        case '/login/check':
           // console.log(req.method);
            //console.log(urlStr);
                 //要是grt就这样直接转化数据就行
            //console.log( querystring.parse(urlobj.query) );
            //下面要是post就调用
            if (req.method.toUpperCase() == 'POST') {

                var str = '';

                req.addEventListener('data', function(chunk) {
                    str += chunk;
                })

                req.addEventListener('end', function() {
                    console.log(str);
                   //两种方法
                   // console.log( querystring.parse( str ) );
                      console.log( queryObj);
                })

            }
            break;
        default:
            openFile(htmldir+"404.html",res);
            break;

    }

})
function openFile(filepath,res)
{
    fs.readFile(filepath,function(err,data){
        if(err)
        {
            res.writeHead(404,{'content-type':'text/html;charset=utf-8'});
            res.write("<h1>页面没找到</h1>");
            res.end();
        }else
        {
            res.writeHead(200,{'content-type':'text/html;charset=utf-8'});
            res.write(data);
            res.end();

        }
    })
}

对应的html login文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <form action="/login/check" method="post">

        <input type="text" name="username"/>
        <input type="password" name="password"/>
        <input type="submit" value="提交"/>

    </form>
</body>
</html>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 7,194评论 1 37
  • 文章来源:小青年原创发布时间:2016-09-29关键词:JavaScript,nodejs,http,url ,...
    技术宅小青年阅读 5,323评论 0 9
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,390评论 19 139
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 8,974评论 2 41
  • 情至于爱屋及乌那也留不住看透了分别时的哭相思时的诉 贪恋于朝夕相处多少光阴虚度注定了没有回头的路只有独往的途
    HURUI阅读 1,761评论 0 0