Node.js中的常用核心模块——HTTP模块(二)

1. 获取GET请求参数

//加载http模块,用于创建网站服务器
const http=require('http');
//加载querystring模块,用于处理URL地址
//querystring 模块提供用于解析和格式化 URL 查询字符串的实用工具。
const querystring = require('querystring');
//加载url模块,用于处理URL地址
//url 模块用于处理与解析 URL
const url = require('url');
//创建服务器
const app = http.createServer();
app.on('request',(req,res)=>{
    res.writeHead(200,{'Content-Tyepe':'text/html;charset=utf-8'});
    //第一种方式使用url模块中的parse函数进行解析,url.parse函数已经被弃用
    console.log('第一种方式获取get方式提交的参数:');
    console.log(url.parse(req.url,true).query);
    //第二种方式使用queryString模块中的parse函数进行解析
    const [urls,query] = req.url.split('?');
    console.log('第二种方式获取get方式提交的参数:');
    console.log(querystring.parse(query));
    //第三种方式使用URL 类
    const urlStr = new URL(req.url,`http://${req.headers.host}`);
    console.log('第三种方式获取get方式提交的参数:');
    console.log(urlStr.searchParams);
    //响应结束
    res.end();
});
app.listen(3000,()=>{
    console.log(`启动成功`);
});

2. 获取POST请求参数

//加载http模块,用于创建网站服务器
const http = require('http');
//加载querystring模块,用于处理URL地址
const querystring = require('querystring');
//加载util模块,实用工具类
const util = require('util');
//创建服务器
http.createServer((req, res) => {
    res.writeHead(200, { 'Content-Tyepe': 'text/html;charset=utf-8' });
    // 定义了一个postData变量,用于暂存请求体的信息
    let postData = '';
    // 通过req的data事件监听函数,每当接受到请求体的数据,就累加到postData变量中
    // 当有数据请求时触发
req.on('data', function (data) {
         //把流数据通过“+”转化成字符串
        postData += data;
    });
    // 在end事件触发后,通过querystring.parse将postData解析为真正的POST请求格式,然后向客户端返回。
    req.on('end', function () {
        //解析为对象
        postData = querystring.parse(postData);
        console.log('获取POST方式提交的参数');
        console.log(postData);
        //响应结束
        //util.inspect()将对象转化为字符串
        res.end(util.inspect(postData));
    });
}).listen(3000, () => {
    console.log(`启动成功`);
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐小侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值