(八) 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閱讀 2,491評論 1 37
  • 文章來源:小青年原創發布時間:2016-09-29關鍵詞:JavaScript,nodejs,http,url ,...
    技術宅小青年閱讀 1,494評論 0 9
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,869評論 18 139
  • Node.js是目前非常火熱的技術,但是它的誕生經歷卻很奇特。 眾所周知,在Netscape設計出JavaScri...
    w_zhuan閱讀 3,639評論 2 41
  • 情至于愛屋及烏那也留不住看透了分別時的哭相思時的訴 貪戀于朝夕相處多少光陰虛度注定了沒有回頭的路只有獨往的途
    HURUI閱讀 259評論 0 0