环境实现数据解析代码

如何在node环境实现“get数据解析”代码实例

编程开发 2020-10-19 02:34:57 36

导读

1、自己写const http = require('http'); http.createServer(function(req,res){ var get = {}; if(req.url.indexOf('?')!=-1){ var ……

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> <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>

个人练习如下:

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实现:

下面的是express中 req.query 就可以方便的取到 { id 123456}

app.get('/article',(req,res)=>{   console.log(req.query)    })


1253067 TFnetwork_cn