原 Node學習筆記之第四課接收前臺發送的數據GET

筆記

----如何接收前臺的數據請求

----前臺向後臺發送請求主要就是以下幾種方式
    form   ajax  jsonp
----後臺不管前臺怎麼發送數據對後臺來說都是一樣的


----前臺與後臺通信都是通過http來通信的    前臺<---http--->後臺


----請求方式主要有兩種方式   POST  GET
    區別   GET是跟隨url一起發送的    POST沒有


----GET數據解析成對象
    1.自己切

    2.querystring模塊----引入模塊
      使用: querystring.parse('user=111&pass=111')  ---->解析成對象

    3.url模塊----引入模塊
      使用: var json1=URL.parse('http://localhost:8888/login?user=111&pass=111',true);
      獲取url  -----json1.pathname
      獲取參數 -----json1.query


----POST數據解析成對象  POST數據比GET大得多  數據都是多段發送的
    POST的請求是分段發送
    var post = {}
    var postStr = '';
    req.on('data', function (data) {
        postStr += data;
    });
    req.on('end', function () {
        post = querystring.parse(postStr);
        console.log(post)
    });

 

html結構

 <!-- GET請求的 -->
     <form action="http://localhost:8888/login" method="GET">
        用戶名:
        <input type="text" name="user" id="">
        密碼:
        <input type="password" name="pass" id="">
        <input type="submit" name="" value="提交">
    </form>

以下有三種方法去拿到請求的值,相對來說用url模塊直接拿到值會方便些

1.自己轉成對象的寫法

const http = require('http');


var server = http.createServer(function (req, res) {
    var get = {}; //get結構是{user:'',pass:''}
    var urlpath = req.url;
    if (urlpath.indexOf('?') != -1) {
        // var urlpath='/login?user=111&pass=111';
        var arr = urlpath.split('?');
        var parmasArr = arr[1].split('&');
        parmasArr.map(function (val, index) {
            get[val.split('=')[0]] = val.split('=')[1]
        })


    } else {

    }

    console.log(get);   //{ user: '111', pass: '111' }
    res.end();
})

server.listen(8888);

2.引用querystring模塊的寫法

const http = require('http');
const querystring = require('querystring')

var server = http.createServer(function (req, res) {
    var get = {};   //get結構是{user:'',pass:''}
    var urlpath = req.url;
    if (urlpath.indexOf('?') != -1) {
        var arr = urlpath.split('?');
        get=querystring.parse(arr[1]);

    } else {

    }

    console.log(get);   //{ user: '111', pass: '111' }
    res.end();
})

server.listen(8888);

3.引用url模塊的寫法

const http = require('http');
const URL = require('url')

var server = http.createServer(function (req, res) {
    var get = {};   //get結構是{user:'',pass:''}
    var urlpath = req.url;
    if (urlpath.indexOf('?') != -1) {
        var Obj=URL.parse(urlpath,true)  //true表示解析query
        get = Obj.query

    } else {

    }

    console.log(get);   //{ user: '111', pass: '111' }
    res.end();
})

server.listen(8888);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章