node 使用get和post向後臺請求資料的使用方式對比

洪小燈發表於2015-10-29

做過web開發的朋友對get和post 的請求的區別肯定十分了解,我就不多講述了。

下面主要介紹一下get和post請求在node中使用的不同

場景就是單純登入操作:傳遞兩個引數使用者名稱和密碼


get請求:

前臺:

function login() {
    var name = $('#name').val();
    var password = $('#password').val();
    if (!name || !password) {
        alert('使用者名稱和密碼都不能為空');
        return;
    }
    $.ajax(
        {
            type: 'get',
            url: '/login',
            data: {
                name: name,
                password: password
            },
            dataType: 'json',
            success: function (data) {
                if (data) {
                }
            },
            error: function () {
                alert('登入失敗!');
                return;
            }
        });
}

後臺:

var express = require('express');
var router = express.Router();
router.get('/login', function (req, res, next) {
    var name = req.query.name;
    var pass = req.query.password;
    console.log('name:' + name);
    console.log('pass:' + pass);
    if (name == 'sis' && pass == '1') {
        res.send('1');
    }
    res.end('is over');
});

post請求:

前臺:

function login() {
    var name = $('#name').val();
    var password = $('#password').val();

    if (!name || !password) {
        alert('使用者名稱和密碼都不能為空');
        return;
    }
    $.ajax(
        {
            type: 'post',
            url: '/login',
            data: {
                name: name,
                password: password
            },
            dataType: 'json',
            success: function (data) {
                if (data) {
                }
            },
            error: function () {
                alert('登入失敗!');
                return;
            }
        });
}

後臺:

var express = require('express');
var router = express.Router();
router.post('/login', function (req, res, next) {
    var name = req.body.name;
    var pass = req.body.password;
    console.log('name:' + name);
    console.log('pass:' + pass);
    if (name == 'sis' && pass == '1') {
        res.send('1');
    }
    res.end('is over');
});
從文章中可以明顯看出get和post請求在node中區別,使用get請求時一定要使用get方法進行監聽,並且獲取傳遞過來的引數是要使用query,使用post請求時一定要使用post方法進行監聽,同時獲取資料是要使用body。至於為什麼這樣做我暫時不是很清楚,如果我搞清楚了會及時補充上去,歡迎大家補充。

順帶補充,還有一種方法傳遞引數給server,就是使用路徑的方式,可以利用web server的http routing來解析,常見於各種web Framework。這不算是傳統標準規範的做法,是屬於http routing的延伸使用

router.get('/login', function(req, res) {
    console.log(req.params.name);
    console.log(req.params.password);
});


相關文章