筆記
----如何接收前臺的數據請求
----前臺向後臺發送請求主要就是以下幾種方式
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);