如何在node環(huán)境實現(xiàn)“get數(shù)據(jù)解析”代碼實例
更新時間:2020年07月03日 10:08:50 作者:奔跑的太陽花
這篇文章主要介紹了如何在node環(huán)境實現(xiàn)“get數(shù)據(jù)解析”代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
1、自己寫
const http = require('http');
http.createServer(function(req,res){
var get = {};
if(req.url.indexOf('?')!=-1){
var arr = req.url.split('?');
var url = arr[0];
var arr2 = arr[1].split('&');
for(var i=0;i<arr2.length;i++){
var arr3 = arr2[i].split('=');
get[arr3[0]]=arr3[1];
}
}else{
var url = req.url;
}
console.log(url,get);
res.write('aaa');
res.end();
}).listen(8080);
2、引入querystring模塊
const http = require('http');
const querystring = require('querystring');
http.createServer(function(req,res){
var get = {};
if(req.url.indexOf('?')!=-1){
var arr = req.url.split('?');
var url = arr[0];
get = querystring.parse(arr[1]);
}else{
var url = req.url;
}
console.log(url,get);
res.write('aaa');
res.end();
}).listen(8080);
3、引入url模塊
const http = require('http');
const urlli = require('url');
http.createServer(function(req,res){
var obj = urlli.parse(req.url,true); //true解析,如果沒有true,默認不解析
var url = obj.pathname;
var get = obj.query;
console.log(url,get);
res.write('aaa');
res.end();
}).listen(8080);
提交表單的HTML代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="http://localhost:8080/aaa" method="get">
用戶:<input type="text" name="user" value=''><br>
密碼:<input type="password" name="pass" value=''><br>
<input type="submit" value="提交">
</form>
</body>
</html>
個人練習(xí)如下:
const http = require("http");
const queryString = require("querystring");
const urlNode = require('url');
http.createServer((req,res)=>{
console.log(req.url); // /aaa?user=123&pass=456
var get = {};
var url = '';
if(req.url.indexOf('?') != -1){
//方法一:切割字符串
// var _arr = req.url.split('?'); //['aaa','user=123&pass=456']
// url = _arr[0]; //'aaa'
// var _arr2 = _arr[1].split('&'); //['user=123','pass=456']
// _arr2.map((v,k,arr)=>{
// var key = v.split('=')[0];
// var value = v.split('=')[1];
// get[key] = value;
// })
//方法二:正則表達式
// var query = req.url.substr(req.url.indexOf('?')+1);
// var regAll = new RegExp("([^?&=]+)=([^?&=]*)", "gi");
// var regSingle = new RegExp("([^?&=]+)=([^?&=]*)", "i");
// var arrAll = query.match(regAll); //["user=123", "pass=456"]
// arrAll.map(function(v,k,arr){
// var resultArr = v.match(regSingle);
// get[resultArr[1]] = resultArr[2];
// })
//方法三:引入querystring模塊
// const arr = req.url.split('?');
// url = arr[0];
// get = queryString.parse(arr[1]);
//方法四:
// const obj = urlNode.parse(req.url,true);
// url = obj.pathname;
// get = obj.query;
}else{
url = req.url;
}
console.log(url,get);
res.write('123456')
res.end('12')
}).listen(8000)
以上都 是原生node實現(xiàn):
下面的是express中 req.query 就可以方便的取到 { id 123456}
app.get('/article',(req,res)=>{
console.log(req.query)
})
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
node.js中的fs.truncateSync方法使用說明
這篇文章主要介紹了node.js中的fs.truncateSync方法使用說明,本文介紹了fs.truncateSync的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下2014-12-12
Node.js Sequelize如何實現(xiàn)數(shù)據(jù)庫的讀寫分離
Sequelize是一個易于使用,支持多SQL方言(dialect)的對象-關(guān)系映射框架(ORM),這個庫完全采用JavaScript開發(fā)并且能夠用在Node.JS環(huán)境中。它當(dāng)前支持MySQL, MariaDB, SQLite 和 PostgreSQL 數(shù)據(jù)庫。在Node.js中,使用 Sequelize操作數(shù)據(jù)庫時,同樣支持讀寫分離。2016-10-10
Nodejs+express+html5 實現(xiàn)拖拽上傳
文件上傳是一個比較常見的功能,傳統(tǒng)的選擇方式的上傳比較麻煩,需要先點擊上傳按鈕,然后再找到文件的路徑,然后上傳。給用戶體驗帶來很大問題。html5開始支持拖拽上傳的需要的api。nodejs也是一個最近越來越流行的技術(shù),這也是自己第一次接觸nodejs。2014-08-08
node.js中的fs.appendFileSync方法使用說明
這篇文章主要介紹了node.js中的fs.appendFileSync方法使用說明,本文介紹了fs.appendFileSync方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下2014-12-12

