当前位置: 首页 > news >正文

在 Node.js 中使用原生 `http` 模块,获取请求的各个部分:**请求行、请求头、请求体、请求路径、查询字符串** 等内容

在 Node.js 中使用原生 http 模块,可以通过 req 对象来获取请求的各个部分:请求行、请求头、请求体、请求路径、查询字符串 等内容。


✅ 一、基础结构

const http = require('http');
const url = require('url');const server = http.createServer((req, res) => {// 解析 URLconst parsedUrl = url.parse(req.url, true); // 第二个参数为 true 会自动解析 query// 请求行(method + URL)const method = req.method;const fullUrl = req.url;// 请求路径const pathname = parsedUrl.pathname;// 查询字符串(对象形式)const query = parsedUrl.query;// 请求头const headers = req.headers;// 请求体(需要手动拼接)let body = '';req.on('data', chunk => {body += chunk;});req.on('end', () => {console.log('--- 请求信息 ---');console.log('请求方法:', method);console.log('请求路径:', pathname);console.log('查询参数:', query);console.log('请求头:', headers);console.log('请求体:', body);res.writeHead(200, { 'Content-Type': 'application/json' });res.end(JSON.stringify({ code: 0, msg: 'OK' }));});
});server.listen(3000, () => {console.log('Server is running at http://localhost:3000');
});

✅ 二、字段说明

内容获取方式说明
请求方法req.method如 GET、POST、PUT 等
请求完整路径req.url包括 ?query=xxx
请求路径url.parse(req.url).pathname去除 query 的纯路径
查询字符串url.parse(req.url, true).query自动解析为对象
请求头req.headers是一个对象,所有 header 键小写
请求体手动拼接监听 data / end仅 POST/PUT 等方法时有数据

✅ 三、示例请求

请求:

POST /user?id=100&name=tom HTTP/1.1
Host: localhost:3000
Content-Type: application/json{"age": 20
}

打印结果:

请求方法: POST
请求路径: /user
查询参数: { id: '100', name: 'tom' }
请求头: {host: 'localhost:3000','content-type': 'application/json',...
}
请求体: { "age": 20 }

✅ 四、如果你想处理 JSON 请求体

可以加个判断来解析:

if (headers['content-type'] === 'application/json') {const data = JSON.parse(body);console.log('解析后的 JSON 数据:', data);
}

相关文章:

  • C# 预定义类型全解析
  • 实验扩充 LED显示4*4键位值
  • 单片机毕业设计选题物联网计算机电气电子类
  • Java使用javacv实现的多种音视频格式播放器
  • Qt编写推流程序/支持webrtc265/从此不用再转码/打开新世界的大门
  • ReSearch:基于强化学习的大语言模型推理搜索框架
  • JavaSpring 中使用 Redis
  • PostgreSQL 常用客户端工具
  • DataWhale AI春训营 问题汇总
  • Map和Set相关练习
  • 【Java面试系列】Spring Boot微服务架构下的分布式事务处理与性能优化 - 2025-04-19详解 - 3-5年Java开发必备知识
  • Linux 桌面环境 LXQt 2.2 发布
  • Http基础
  • docker架构
  • Java调用LLM大模型 - 基于 Spring AI 实现
  • 中间件--ClickHouse-11--部署示例(Linux宿主机部署,Docker容器部署)
  • 研一自救指南 - 07. CSS面向面试学习
  • MySQL如何实现行行比较
  • php多种方法实现xss过滤
  • 工厂模式具体应用在什么场景?
  • 人民日报聚焦外贸“重镇”福建晋江:多元化布局扩大“朋友圈”
  • 俄乌就不打击民用基础设施释放对话信号
  • 从沙漠到都市:贝亲世界地球日特别行动,以桃叶冰爽力开启地球降温之旅
  • 比起追逐爆款,动画行业更需要打开思路“重塑肉身”
  • 全球前瞻|中国印尼举行首次“2+2”部长级会议,美乌将签署矿产协议
  • 经济参考报:安全是汽车智能化的终极目标