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

Nodejs web服务器之GET、POST请求初次体验

一、认识http请求

步骤

1.DNS解析域名,找到ip地址,建立TCP连接,发起http请求
2.服务器接收到http请求,进行处理,返回数据
3.客户端接收到返回的数据,处理数据(比如渲染页面)

二、nodejs处理GET请求

const http = require('http');
const server = http.createServer((req, res) => {res.end("Hello node");
});
server.listen(5005, () => {console.log('server running at port 5005');
});

浏览器上访问 http://localhost:5005/ 在这里插入图片描述
那么如何看到URL的传参呢?

const http = require('http');
const querystring = require('querystring'); //导入querystring模块
const server = http.createServer((req, res) => {const method = req.method; //请求方式const url = req.url; //urlconst path = url.split('?')[0] //路径console.log('mothod = ', method,',url = ',url);req.query = querystring.parse(url.split('?')[1]); //参数console.log('query = ', req.query);res.end(JSON.stringify(req.query) //显示传的参数以json串的形式);
});
server.listen(5005, () => {console.log('server running at port 5005');
});

运行node,并在浏览器上访问 http://localhost:5005/index.js?name=zs&age=25
在这里插入图片描述

三、处理POST请求

const http = require('http');
const querystring = require('querystring'); //导入querystring模块
const server = http.createServer((req, res) => {if (req.method === "POST") {let postData = '';//流string的方式req.on('data', chunk => {postData += chunk.toString();})req.on('end', () => { console.log('postData = ', postData);res.end("收到,over");})console.log("post data header", req.headers);}
});
server.listen(5005, () => {console.log('server running at port 5005');
});

使用apifox发送POST请求
在这里插入图片描述
这样就可以处理客户端的POST请求了。

其他

运行node可能会遇到的问题 **** 端口被占用

注意:有时运行 node index.js 是提示端口5005被占用了
在这里插入图片描述
执行 lsof -i:5005 查看哪些进程占用了5005端口
在这里插入图片描述
执行 执行 kill 67740 杀死占用的进程即可

相关文章:

  • 2024《》
  • 论文研读_多目标部署优化:无人机在能源高效无线覆盖中的应用(ImMOGWO)精简版
  • 100个Linux操作命令和20个常用脚本
  • docker中的具名和匿名挂载
  • MySQL CTEs通用表表达式:进阶学习-递归查询
  • Qt将Unicode转换成UTF8中文
  • 哈希专题 - leetcode 1. 两数之和 - 简单难度
  • 代码随想录算法训练营day47|第九章 动态规划part09:198.打家劫舍、213.打家劫舍II、337.打家劫舍III
  • 掌握 Vue3、Vite 和 SCSS 实现一键换肤的魔法步骤
  • 基于redis实现用户登陆
  • 【Python爬虫实战】抓取省市级城市常务会议内容
  • 基于VUE3搭建项目步骤
  • Threejs之场景标注标签信息CSS2DRenderer
  • 数据库学习案例20240306-oracle数据库连接类故障trace
  • OpenGL实现礼物特效方案(直播)
  • gulp 教程
  • JavaScript创建对象的四种方式
  • Lucene解析 - 基本概念
  • ng6--错误信息小结(持续更新)
  • STAR法则
  • Vue 动态创建 component
  • vue:响应原理
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 前端性能优化--懒加载和预加载
  • 使用 @font-face
  • 组复制官方翻译九、Group Replication Technical Details
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #HarmonyOS:软件安装window和mac预览Hello World
  • $NOIp2018$劝退记
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (搬运以学习)flask 上下文的实现
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Micro Framework初体验
  • .Net MVC4 上传大文件,并保存表单
  • @GlobalLock注解作用与原理解析
  • @RequestMapping 的作用是什么?
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149
  • [20161101]rman备份与数据文件变化7.txt
  • [20170728]oracle保留字.txt
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [AIGC] 使用Curl进行网络请求的常见用法
  • [Angularjs]asp.net mvc+angularjs+web api单页应用之CRUD操作
  • [BZOJ 4129]Haruna’s Breakfast(树上带修改莫队)
  • [C#]winform制作仪表盘好用的表盘控件和使用方法
  • [codevs 1515]跳 【解题报告】
  • [Docker]三.Docker 部署nginx,以及映射端口,挂载数据卷
  • [iOS]-UIKit
  • [Java开发之路](14)反射机制