一、get请求url数据操作
1.获取请求的url
const http=require("http");
//点击html链接标签发送网络请求
const server=http.createServer((req,res)=>{
//用req.url获取路径
console.log(querystring.parse(req.url));
res.end();
})
//用listen方法监听端口号
server.listen(8080);
2.将获取的url转变为对象再提取标题
const http=require("http");
//引入url模块,用url.parse(reqUrl)获取url对象,
//用url.parse(reqUrl,true).query.title获取url地址中的参数
const url=require("url");
const server=http.createServer((req,res)=>{
const reqUrl=req.url;
console.log(url.parse(reqUrl));
console.log(url.parse(reqUrl,true).query.title);
res.end();
})
server.listen(8080);
3.另一种写法:querystring将获取的url转变为对象再提取标题
//通过querystring模块解析url.parse(reqUrl).query
const http=require("http");
const url=require("url");
const querystring=require("querystring");
const server=http.createServer((req,res)=>{
const reqUrl=req.url;
const queryUrl=url.parse(reqUrl).query;
console.log(querystring.parse(queryUrl));
res.end();
})
server.listen(8080);
二、get请求表单数据操作
1.先在html中写一个表单
<form method="get" action='http://localhost:8080'>
<input type="text" name="userName">
<input type="password" name="userPwd">
<input type="submit" value="sign in">
</form>
2.获取url中的表单数据
const http=require("http");
const url=require("url")
const server=http.createServer((req,res)=>{
//用writeHead方法来写头部
res.writeHead(200,{"Content-Type":"text/html;charset=utf8"})
const reqUrl=req.url;
const formVal= url.parse(reqUrl,true).query;
//这里有个奇怪的bug,UserName属性一定要大写,不知缘由
//原因是我一开始写的html是UserName属性,而我虽然后面改了,但用于调试的页面仍然是原来那个,也许是组件属性绑定了无法修改,需要重新打开页面才能修改属性名
console.log("用户名:"+formVal.UserName+"密码:"+formVal.userPwd);
//用res.end()在屏幕上输出
res.end("用户名:"+formVal.UserName+"-->密码:"+formVal.userPwd);
})
server.listen(8080);
三、post请求表单数据操作
通过事件接收数据
const http=require("http");
const querystring=require("querystring");
const server=http.createServer((req,res)=>{
let postVal="";
// data事件接受数据,chunk参数代表每次发的数据
req.on("data",(chunk)=>{
postVal+=chunk;
})
//end事件:数据发送完成,此时可以输出结果
req.on("end",()=>{
console.log(querystring.parse(postVal));
//不要忘记end方法
res.end();
})
})
server.listen(8080)