nodejs--url模块:Get/Post参数处理、区分Get和Post请求
程序开发
2023-09-03 07:27:09
i.Get参数处理
1.如何拿到Get请求传递过来的参数
使用URL模块
url.format(urlObject):将路径转换为对象
url.parse(urlString[, parseQueryString[, slashesDenoteHost]]):将对象转换为路径
示例,
let url = require("url");
let http = require("http");// let str = "http://root:123456@www.it666.com:80/index.html?name=lnj&age=68#banner";
// let obj = url.parse(str, true);//将对象转换为路径
// console.log(obj);
// console.log(obj.query.name);
// console.log(obj.query.age);// 1.创建一个服务器实例对象
let server = http.createServer();
server.on("request", function(req, res) {// console.log(req.url);let obj = url.parse(req.url, true);res.end(obj.query.name + "----" + obj.query.age);
});
// 3.指定监听的端口
server.listen(3000);
ii.Post参数处理
1.如何拿到POST请求传递过来的参数
使用querystring模块
querystring.parse(str[, sep[, eq[, options]]]) 将参数转换为对象
querystring.stringify(obj[, sep[, eq[, options]]]) 将对象转换为参数
示例,
index.html
httpServe.js
let http = require("http");
let queryString = require("querystring");// 1.创建一个服务器实例对象
let server = http.createServer();
server.on("request", (req, res) => {// 1.定义变量保存传递过来的参数let params = "";// 注意点: 在NODEJS中 ,POST请求的参数我们不能一次性拿到, 必须分批获取req.on("data", (chunk) => {// 每次只能拿到一部分数据params += chunk;});req.on("end", function() {// 这里才能拿到完整的数据// console.log(params);let obj = queryString.parse(params);// console.log(obj.userName);// console.log(obj.password);res.end(obj.userName + "----" + obj.password);});
});
// 3.指定监听的端口
server.listen(3000);
iii.区分Get和Post请求
通过HTTP模块http.IncomingMessage 类的.method属性
示例,
let http = require("http");// 1.创建一个服务器实例对象
let server = http.createServer();
server.on("request", function (req, res) {// console.log(req.method);res.writeHead(200, {"Content-Type": "text/plain; charset=utf-8"});if(req.method.toLowerCase() === "get"){res.end("利用GET请求的方式处理参数");}else if(req.method.toLowerCase() === "post"){res.end("利用POST请求的方式处理参数");}
});
// 3.指定监听的端口
server.listen(3000);
标签:
相关文章
-
无相关信息