nodejs 中 接受前端的數據請求的處理


  前台 ---->  后台

  后台要接受 前台的數據,只能通過 http 

  但是 前台接受 后台的數據有  from   ajax    jsonp

  nodejs 給我們提供了模塊 url 模塊,可以專門解析 url 地址

  讓我們在走一遍流程

  案例:

  const http=require("http");  // 引入 http 模塊,創建服務器

  const urlbli=require("url");  // 引入 url 模塊,解析 url 地址

  http.createServer(function(req,res){

    if(req.url.indexOf("?")!=-1){    //做一個判斷,像谷歌這種高級瀏覽器,每次還會返回一個 favicon;網絡地址后面都回帶?

                     // 這個代碼的意思是,如果我們這個字符串里面有 ? 在執行里面的語句

      var obj=urlbli.parse(req.url,true);  // url 模塊的 parse 方法,可以幫我們解析瀏覽器的地址,true 這個參數是處理 瀏覽器通過 get 傳遞的參數

      var url=obj.pathname;  //回得到一個 obj 的對象

      var get=obj.query;

      console.log(url,get);

    }

    req.url  // 獲取了 網絡地址

    res.write("前台請求的數據");

    

  }).listen(8080);

  如果我們運行了 8080 端口,我們在別的服務器上就不能運行了,一個端口,只能運行一個服務器

  當然 此等方法也是針對 瀏覽器通過 get 方式請求 才有效

  

  下面,我們的是 post 的請求;

  為什么說 get 和 post 的方式不一樣;

  如圖:

    

  post 和 get 兩種請求方式的區別:

    1.  post 數據 可以比 get 數據發送更多的請求  相對而言,post 比 get 方式安全一點;

    最重要的是,如果 post 發送,由於 post 可以發送 1 g 的數據,如果要對服務器 一股腦 發送這么大的數據,對服務器來說確實不夠友好,所以 post 的發送方式都是 分段 發送 

    分段發送:每次發送一小段,分好幾次發送完畢;

  案例:

    var http=require("http");

    var querystring=require("querystring");

    http.createServer(function(req,res){

      var str="";              //  on()  在這個里面相當於事件,我們可以這樣理解    data 事件    end 事件

      req.on("data",function(data){      // 我們想要 得到 post 請求的數據,我們要用 on()  參數一:data ,參數二:回調函數;回調函數 data ,我們便能得到參數

        str+=data;

      })

      req.on("end",function(){        // 我們請求完數據 調用這個方法 我們 調用 on() 參數一:end,參數二:回調函數,我們在這里,便能得到完整的數據

        var post = querystring(str);

        console.log(post);

      })

    }).listen(8080)

  這樣我們便請求完了所以的數據 通過 post 方式

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM