最常用的接口请求方式是GET和POST,GET请求的参数是放在url中的,本篇来总结一下nodeJs对GET请求参数的处理方法
准备
创建一个html文件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></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>
1、初级:手写
创建node文件server.js
const http=require('http');
http.createServer(function (req, res){
var GET={};
if(req.url.indexOf('?')!=-1){
var arr=req.url.split('?');
//arr[0]=>地址 '/aaa'
var url=arr[0];
//arr[1]=>数据 'user=blue&pass=123456'
var arr2=arr[1].split('&');
//arr2=>['user=blue', 'pass=123456']
for(var i=0;i<arr2.length;i++){
var arr3=arr2[i].split('=');
//arr3[0]=>名字 'user'
//arr3[1]=>数据 'blue'
GET[arr3[0]]=arr3[1];
}
}else{
var url=req.url;
}
console.log(url, GET);
//req获取前台请求数据
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);
//req获取前台请求数据
res.write('aaa');
res.end();
}).listen(8080);
3、高级:使用url模块
const http=require('http');
const urlLib=require('url');
http.createServer(function (req, res){
var obj=urlLib.parse(req.url, true);
var url=obj.pathname;
var GET=obj.query;
console.log(url, GET);
//req获取前台请求数据
res.write('aaa');
res.end();
}).listen(8080);
一个更完善的nodeJS服务器雏形:了解更多