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

时间:2021-05-18

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>

个人练习如下:

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章