【Express.js】请求类型

这篇具有很好参考价值的文章主要介绍了【Express.js】请求类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

请求类型

本节将介绍常见的http请求方式,并站在后端的角度初步感受它们的不同点

各类Http请求

  • GET
    意图是获取,不会对服务器上的数据产生影响,将要携带的数据放在URL上,通常不带请求体,带了也不一定兼容
  • POST
    意图是提交,通常用于修改和新增服务器上的数据,偏向新增,路径定位较模糊,要携带的数据通常放在请求体
  • PUT
    类似POST,偏向更新,路径定位更明确,要携带的数据通常放在请求体
    幂等性:连续PUT请求后,效果应当只有一次,而POST则会创建多个新资源,不过在REST风格下以及在后台有严格的检验情况下其实这些区别可以忽略
    缓存机制:由于PUT的幂等性,不存在缓存,而POST是缓存的,比如你在表单里用POST,不设置提交后清除,刷新页面它会将之前的数据再提交一遍
  • DELETE
    意图是删除,从服务器上删除某些数据
  • HEAD
    类似GET,但争对它的响应没有body,只有响应头,常用于判断资源是否存在、链接有效性等
  • OPTIONS
    意图是询问当前URL允许的请求方法等,常用于跨域请求前的预检和获取服务器的安全控制信息等
  • TRACE
    路径追踪,回显请求,常用于测试阶段
  • PATCH
    PUT的超类,指定资源的局部更新
  • COPY
    请求将页面拷贝到另一个URL,常用于Web资源的备份
  • MOVE
    请求将页面移动到另一个URL,常用于Web资源的搬迁
  • LINK
    请求与服务器建立链接
  • UNLINK
    断开与服务器的链接

其中 GET, POST 最为广泛使用,同时可以使用PUT和DELETE让我们的接口的目的更具有指向性
本书绝大部分接口都将采用类REST风格,即普遍的返回码200,数据格式为json

express处理不同的请求

通过调用get,post,pu,delete…对应不同方法下的路由
由于实际受不同的开发规范和业务环境影响,在这里只以GET和POST举例

get请求

//省略了express项目的创建
class Item {
    constructor(name, value) {
      this.name = name;
      this.value = value;
    }
}

//get接口
app.get('/request', function (req, res) {
    let result = [];
    result.push(new Item("baseUrl",req.baseUrl));
    result.push(new Item("fresh",req.fresh));   //请求是否存活
    result.push(new Item("hostname",req.hostname)); //请求源域名
    result.push(new Item("ip",req.ip)); //请求源IP
    result.push(new Item("originalUrl",req.originalUrl));
    result.push(new Item("params",req.path));   //路径参数: /x/y/z/
    result.push(new Item("protocol",req.protocol)); //请求协议
    result.push(new Item("query",req.query));   //查询参数
    result.push(new Item("route",req.route));   //请求路由
    result.push(new Item("is:Content-Type",req.is('application/json')));

    res.send(result);
});

以上代码,定义了GET接口,并返回了关于请求的大部分信息

测试接口

使用api调试工具,尝试用不同的携带数据方法以get形式访问该接口,比较不同的返回结果

post请求

监听相同路径的post请求,开启json解析,一会我们调试时请求体采用最常用的json格式

//启用json解析
app.use(express.json({type: 'application/json'}));

app.post('/post', function (req, res) {
    let result = [];
    result.push(new Item("baseUrl",req.baseUrl));
    result.push(new Item("fresh",req.fresh));
    result.push(new Item("hostname",req.hostname));
    result.push(new Item("ip",req.ip));
    result.push(new Item("originalUrl",req.originalUrl));
    result.push(new Item("params",req.path));
    result.push(new Item("protocol",req.protocol));
    result.push(new Item("query",req.query));
    result.push(new Item("body",req.body));
    result.push(new Item("route",req.route));
    result.push(new Item("is:Content-Type",req.is('application/json')));

    res.send(result);
});

测试接口

使用api调试工具,尝试用不同的携带数据方法以post形式访问该接口,比较不同的返回结果

不限方法

如果你想让某个路由能以任意方法访问:

app.use('/any', function (req, res) {
    res.send('Bad World!');
});

尝试使用各种方法去访问 127.0.0.1:8080/any,都可以得到Bad World!文章来源地址https://www.toymoban.com/news/detail-491473.html

下一节-处理请求数据

到了这里,关于【Express.js】请求类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java Http各个请求类型详细介绍

    在Spring Boot框架中,HTTP请求类型是构建Web应用程序的重要组成部分。常见的请求类型包括GET、POST、PUT和DELETE,每种类型都有其特定的用途和特点。本文将详细比较这四种请求类型,帮助您在开发过程中做出明智的选择。 GET请求是最常见的请求类型,主要用于从服务器检索数

    2024年02月02日
    浏览(31)
  • Postman系列(六)-请求body类型介绍与配置

    ===如果你觉得这篇内容对你有所帮助,有所启发,我想邀请你帮我个忙, 搜索公众号名称,或点击文章底部卡片即可加我。=== post请求一样会用到查询参数、请求头、cookie等参数,它与get请求最大的不同就是,post请求需要上传“body”。在URL左侧下拉框可选择请求的方法。 在

    2023年04月11日
    浏览(30)
  • 深入理解HTTP请求中常见的数据类型包括表单数据、JSON、XML和文件上传等。

    本文将介绍HTTP请求中常见的数据类型,包括表单数据、JSON、XML和文件上传等。通过详细解释每种数据类型的特点、用途和示例,帮助读者深入理解并正确使用这些常见的HTTP数据类型。 在Web开发中,HTTP是一种常用的通信协议,用于客户端和服务器之间的数据交互。HTTP请求中

    2024年02月10日
    浏览(86)
  • 网络安全攻击方式有几种?常见类型介绍!

    渗透测试是为了证明网络防御按照预期计划正常运行而提供的一种机制。作为网络安全防范的一种新技术,渗透测试对于网络安全组织具有实际应用价值,那么你知道渗透测试的攻击方法有哪些吗?以下为大家详细介绍一下,希望对你们有所帮助。 目前国内外使用比较普遍的

    2024年02月11日
    浏览(39)
  • JavaScript基础:js介绍、变量、数据类型以及类型转换

      目录 介绍 引入方式 内部方式 外部形式 注释和结束符 单行注释 多行注释 结束符 输入和输出 输出 输入 变量 声明 赋值 变量名命名规则 常量 数据类型 数值类型 字符串类型 布尔类型 undefined 类型转换 隐式转换 显式转换 Number 📖引入方式 JavaScript 程序不能独立运行

    2024年04月27日
    浏览(43)
  • 【Express.js】express-validator

    express.js 集成 express-validator进行数据校验 在最初的时候,对于请求的数据校验,我们是自定义一个中间件,然后在里面通过最原生的方式检验。在本节,我们将尝试用一种更优雅的方式进行数据校验。 创建一个基础的 express 项目(本文基于evp-express-cli),并支持全局同步和异

    2024年02月13日
    浏览(37)
  • Express.js认识

         Express 是 Node.js 老框架,以简单和轻量著称,几行代码就可以启动一个 HTTP 服务器。 市面上主流的 Node.js 框架,如 Egg.js、Nest.js 等都与 Express 息息相关。 Express 框架使用标准 Node.js 语法,主要由以下 3 个核心部分组成: 路由。 中间件。 错误处理。      Express  基本结

    2024年02月21日
    浏览(35)
  • 【Express.js】页面渲染

    常见的页面分为两种,一种是静态页面,比如用 Vue、React 等写好的静态页面,另一种是动态模板页面,如 Thymeleaf,JSP 等。 本节将简要介绍如何在 express 中渲染静态页面,以及适用于 express 的模板引擎 pug 。 写前端的和搞部署的同学应该都清除,页面渲染的用到的 css, js, f

    2024年02月13日
    浏览(45)
  • 【Express.js】集成RabbitMQ

    本节我们介绍在 express.js 中集成 rabbitmq. RabbitMQ 是一个消息队列中间件,常用于请求削峰,事务的队列处理,事件订阅机制的实现等。 创建一个 express.js 项目(本文基于evp-express-cli) 在开发环境下安装rabbitmq 安装amqplib.js: 正常的项目都是分层的,为了避免循环依赖,本文采用

    2024年02月13日
    浏览(33)
  • 【Express.js】集成Redis

    本节我们介绍在 express.js 中集成 redis. Redis是一个高性能的key-value内存数据库,支持事务、队列、持久化等特性,常用于高并发性能场景。 创建一个 express.js 项目(本文基于evp-express-cli) 在开发环境下安装redis 安装redis.js: 正常的项目都是分层的,为了避免循环依赖,本文采用

    2024年02月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包