express处理get请求和post请求

一、处理get请求

(1)req.query

1》定义:

此属性是一个对象,包含路由中每个查询字符串参数的属性。此对象默认为 {}

2》代码示例:

例如:获取http://127.0.0.1:8000/?name=jane 的name的值

const express=require('express');
const app=express();
app.get('/',(req,res)=>{let name=req.query.name;res.send(`hello ${name}`);console.log('name的值为'+name);
})

(2)req.params

1》定义:

此属性是一个包含映射到命名路由“参数”的属性的对象。此对象默认为 {}

2》代码示例:

例如:获取http://127.0.0.1:8000/?name=jane 的name的值

const express=require('express');
const app=express();
app.get('/user/:name',(req,res)=>{res.send('hello')console.log(req.params); //输出{ name: 'jane' }
})

二、处理post请求

(1)req.body

1》定义:

此属性包含在请求正文中提交的数据键值对。默认情况下,它是 undefined,并在你使用urlencoded、 body-parser 和 multer 等正文解析中间件时填充

Express框架4.16版本前不包含解析POST请求的API,需要安装第三方模块 body-parser 或 multer进行解析,这之后req.body默认为{ }。4.16版本后内置了urlencoded中间件可解析post请求数据,分别放置在req.body中。

(2)body-parser中间件

1》定义:

仅做了解,使用推荐内置中间件

body-parser是用来解析POST请求体的中间件,默认只能解析application/x-www-form-urlencoded和application/json类型的数据。不同的数据格式,需配置不同的解析器

Express 4.16.0 版本及之后,express.json() 和 express.urlencoded() 这两个中间件被直接集成进了 Express,成为了express内置中间件。所以在许多情况下,你不再需要额外安装 body-parser。不过,为了兼容旧版本的 Express 或者其他框架,了解 body-parser 的使用仍然是有帮助的。

2》安装:

npm install body-parser

3》使用:

(1)常见的form提交:application/x-www-form-urlencoded
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended:true}));

extended: true 选项允许解析复杂的 URL 编码数据,如嵌套对象和数组

(2)提交json格式的数据:application/json
app.use(bodyParser.json());

(3)multer中间件    

具体见:http://t.csdnimg.cn/5YPXJ

1》定义:

multer中间件一般用来解析multipart/form-data类型的数据(通常用于上传文件)

提交文件:multipart/form-data

eg:<input type=file enctype="multipart/form-data" name="filename">

2》安装:

npm install multer -save

3》导入:

const multer=require(‘multer’);

(4)内置中间件

1》定义:

Express 4.16.0以上增加了一些内置的中间件,对于基本的json和urlencoded解析,可以不用body-parser

2》内置中间件

express.json()和express.urlencoded(({extended:true|false}))

3》使用:
(1)内置中间件express.json():解析application/json
const express = require('express');
const app = express();
app.use(express.json());
app.post('/json', (req, res) => {console.log(req.body); // 这里的 req.body 会包含解析后的 JSON 数据res.send('JSON data received!');});
app.listen(3000, () => {console.log('Server is running on port 3000');});
(2)内置中间件express.urlencoded():解析application/x-www-form-urlencoded
app.use(express.urlencoded({extended:true}))
app.post('/form', (req, res) => {console.log(req.body); // 这里的 req.body 会包含解析后的 URL 编码数据res.send('Form data received!');});
app.listen(3000, () => {console.log('Server is running on port 3000');});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/16313.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么在Qt Designer设计的界面上显示Matplotlib的绘图?

首先&#xff0c;利用Qt Designer设计界面。 设计好后保存为ui文件。 接着&#xff0c;将ui文件转为py文件。 我喜欢在python中进行转换&#xff0c;因此把转换命令封装为函数&#xff0c;运行一下即可。 import os # pyuic5 -o output_file.py input_file.ui #通过命令把.ui…

【云原生】Kubernetes-----POD资源限制与探针机制

目录 引言 一、资源限制 &#xff08;一&#xff09;基本定义 &#xff08;二&#xff09;资源单位 1.CPU资源 2.内存资源 &#xff08;三&#xff09;请求与限制 &#xff08;四&#xff09;定义方式 1.编写yaml文件 2.查看资源情况 二、Pod探针机制 &#xff08;…

动态规划之背包问题中如何确定遍历顺序的问题-组合or排列?

关于如何确定遍历顺序 322. 零钱兑换中&#xff0c;本题求钱币最小个数&#xff0c;那么钱币有顺序和没有顺序都可以&#xff0c;都不影响钱币的最小个数。 所以本题并不强调集合是组合还是排列。 如果求组合数就是外层for循环遍历物品&#xff0c;内层for遍历背包。 如果求…

UML建模

一、概述 二、类图 三、用例图 四、顺序图 五、活动图 六、状态图 七、通信图 八、构件图

学 C/C++ 具体能干什么?

学习 C 和 C 后&#xff0c;你可以从事许多不同的工作和项目&#xff0c;这两种语言以其高性能和低级控制而闻名&#xff0c;特别适合以下几个领域&#xff1a; 1. 系统编程 C 和 C 是系统编程的首选语言&#xff0c;适用于操作系统、驱动程序和嵌入式系统开发。 操作系统开发…

MySQL--InnoDB体系结构

目录 一、物理存储结构 二、表空间 1.数据表空间介绍 2.数据表空间迁移 3.共享表空间 4.临时表空间 5.undo表空间 三、InnoDB内存结构 1.innodb_buffer_pool 2.innodb_log_buffer 四、InnoDB 8.0结构图例 五、InnoDB重要参数 1.redo log刷新磁盘策略 2.刷盘方式&…

常量知识点

常量的声明 关键字&#xff1a;const 固定写法&#xff1a; const 变量类型 变量名 初始值; 附上代码&#xff1a; //变量的声明 int i 10; //常量的声明 const int j 11;常量的特点 必须初始化不能被修改 作用&#xff1a;声明一些常用不变的变量&#xff0c;如PI等 附…

代码随想录算法训练营第50天|● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 ●总结

309. 买卖股票的最佳时机含冷冻期llllll 冷冻期算单独一种情况&#xff1a;1.今天持有&#xff08;已有or今天买&#xff09;2.已经卖出3.今天卖出4.冷冻期 在最后一天的所有卖出状态中找最大值&#xff0c;包括冷冻期 class Solution:def maxProfit(self, prices: List[int]…

明星IP切片带货爆单营,0基础搞定IP切片带货短视频(69节课)

把握带货趋势&#xff0c;了解切片流程&#xff0c;剪辑带货创收营 课程目录&#xff1a; 01第一章实操链路-第一节IP选择.mp4 02第一章实操链路-第二节账号准备.mp4 03第一章实操链路-第四节开通权限.mp4 04第一章实操链路-第五节货品准备.mp4 05第一章实操链路-第六节素…

一、Servlet和JSP技术概述

注&#xff1a;该系列笔记是用于我在 《Servlet 与 JSP 核心编程》这本书中的学习笔记&#xff0c;无其他意思&#xff0c;侵权请联系2082045221qq.com删除。 ​ 第一章内容较少&#xff0c;所以暂时有用的笔记也不多。 1.1、Servlet 的功用&#xff1a; ​ Servlet 是运行在…

Go语言之GORM框架(二) ——GORM的单表操作

前言 在上一篇文章中&#xff0c;我们对Gorm进行了介绍&#xff0c;而在这一篇文章中我们主要介绍GORM的单表查询与Hook函数,在进行今天的内容之前我们先事先说明一下&#xff0c;下面我们对单表进行操作的表结构如下&#xff1a; type Student struct {ID uint gorm:&qu…

自学动态规划——目标和

目标和 494. 目标和 - 力扣&#xff08;LeetCode&#xff09; 这次做的时候递推公式搞错了捏。 经过一些列骚操作&#xff08;详情见代码首部注释&#xff09;&#xff0c;我们成功将目的转化为&#xff1a;给i个物品&#xff0c;重量和价值一致&#xff0c;最大容量s1&…

GNU/Linux - 时区设置

CST China Standard Time 北京时间/中国标准时间 在时区划分上&#xff0c;属东八区&#xff0c;比协调世界时早 8 小时&#xff0c;记为 UTC8 GMT Greenwich Mean Time 格林威治标准时间 是指位于英国伦敦郊区的格林尼治天文台的标准时间&#xff0c;因为本初子午线被定…

推荐系统学习笔记(四)--基于向量的召回

离散特征处理 离散特征&#xff1a;性别&#xff0c;国籍&#xff0c;英文单词&#xff0c;物品id&#xff0c;用户id 处理&#xff1a; 建立字典&#xff1a;eg&#xff1a;china 1 向量化&#xff1a;eg&#xff1a;one-hot /embedding&#xff08;低维稠密向量&#xf…

C语言----判断n是否是2的次方数,利用到按位与,算法n(n-1)

//写一个代码&#xff0c;判断n是否是2的次方数 //if(n&(n-1))0 /* 2的0次方是1---二进制1 2的1次方是2---二进制10 2的2次方是4---二进制1002的一次方-1是1---二进制是1 2的二次方-1是3---二进制是11 2的三次方-1是7---二进制是111 n与n-1 按位与后&是0就是0&#xf…

网络模型-BFD与网络协议联动

一、BFD:双向转发检测 双向转发检测BFD(Bidirectional Forwarding Detection)是一种全网统一的检测机制&#xff0c;用于快速检测、监控网络中链路或者IP路由的转发连通状况。 1、BFD优点: 对相邻转发引擎之间的通道提供轻负荷、快速故障检测。这些故障包括接口数据链路&#…

​✨聚梦AI绘图插件-for photoshop(基于ComfyUI) 内测版V0.1发布

&#x1f388;背景 photoshop本身是有AI生成能力的&#xff0c;不过限于种种原因&#xff0c;国内使用很不方便。 photoshop也是有AI插件的&#xff0c;不过大多安装起来比较复杂&#xff0c;或者&#xff0c;干脆就会收费。 所以我们做了一个免费的AI插件&#xff0c;期望能…

计算机毕业设计 | SpringBoot招投标 任务发布网站(附源码)

1&#xff0c;绪论 在市场范围内&#xff0c;任务发布网站很受欢迎&#xff0c;有很多开发者以及其他领域的牛人&#xff0c;更倾向于选择工作时间、工作场景更自由的零工市场寻求零散单子来补贴家用。 如今市场上&#xff0c;任务发布网站鱼龙混杂&#xff0c;用户需要找一个…

民国漫画杂志《时代漫画》第24期.PDF

时代漫画24.PDF: https://url03.ctfile.com/f/1779803-1248635000-177187?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!

iOS ------多线程NSOperation,NSOperationQueue

1,NSOperation&#xff0c;NSOperationQueue简介 NSOperation&#xff0c;NSOperationQueue是苹果提供我们的一套多线程解决方案。实际上NSOperationa&#xff0c;NSOperationQueue是基于GCD更高一层的封装。但是比GCD更简单易用&#xff0c;代码可读性也会更高。 为什么要使…