素材巴巴 > 程序开发 >

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

name:
password:

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


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。