关于Express 5

目录

1、概述

2、Express 5的变化

2.1 弃用或删除内容的列表:

app.param(name,fn)名称中的前导冒号(:)

app.del()

app.param(fn)

复数方法名

res.json(obj,status)

res.jsonp(obj,status)

req.param(name)

res.send(body,status)

res.send(status)

res.sendfile()

res.redirect(url, status)

2.2 重构的内容列表:

2.3 发布变更列表:



 

1、概述

Express 5.0仍处于beta测试阶段,但这里是版本中的更改以及如何将Express 4应用迁移到Express 5的预览。

Express 5与Express 4没有太大区别:API的变化不像从3.0到4.0那么重要。 虽然基本API保持不变,但仍有突破性变化;换句话说,如果您将现有的Express 4程序更新为使用Express 5,则该程序可能无法工作。

要安装最新的beta并预览Express 5,请在应用程序根目录中输入以下命令:

npm install express@5.0.0-beta.1 --save

目前最新的版本是beta.1版本,这是第一个Express 5.0测试版,基于4.17.2。

然后,您可以运行自动化测试来查看失败的内容,并根据下面列出的更新来修复问题。解决测试失败后,运行您的应用以查看发生了哪些错误。您将立即发现应用是否使用了不受支持的任何方法或属性。

2、Express 5的变化

以下是将影响Express用户的更改列表(从alpha 2版本开始)。 请参阅拉取请求以获取所有计划功能的列表。

2.1 弃用或删除内容的列表:

  • app.param(name,fn)的name参数中的前导冒号
  • app.del
  • app.param(fn)
  • req.acceptsCharset
  • req.acceptsEncoding
  • req.acceptsLanguage
  • res.json(obj, status)
  • res.json(status, obj)
  • res.jsonp(obj, status)
  • res.jsonp(status, obj)
  • req.param()
  • res.redirect(url, status)
  • res.send(body, status)
  • res.send(status)
  • res.send(status, body)
  • res.sendfile
  • res.vary()

如果您在应用中使用这些方法或属性中的任何一个,它都将报错。因此,您需要在更新到版本5后更改应用中的方法或者属性。

app.param(name,fn)名称中的前导冒号(:)

app.param(name, fn)函数名称中的前导冒号(:)是Express 3的残余,为了向后兼容,Express 4通过弃用通知支持它。Express 5将默默地忽略它,并使用name参数,而不使用冒号作为前缀。

如果您遵循app.paramapp.paramapp.param的Express4文档,这应该不会影响您的代码,因为它没有提到前导冒号。

开始修改版本:5.0.0-alpha.2 / 2015-07-06

app.del()

Express 5不再支持app.del()功能。如果使用此函数,则会抛出错误。要注册HTTP DELETE路由,请使用app.delete()函数。

最初使用del而不是delete,因为delete是JavaScript中的保留关键字。但是,从ECMAScript 6开始,delete和其他保留关键字可以合法地用作属性名称。

从版本3.6.0开始弃用 

app.param(fn)

app.param(fn)签名用于修改app.param(name, fn)函数的行为。自v4.11.0以来,它已被弃用,Express 5根本不再支持它。

版本5.0.0-alpha.2 / 2015-07-06 对方法进行移除

复数方法名

以下方法名称已使用复数形式。在Express 4中,使用旧方法会导致弃用警告。 Express 5不再支持它们:

req.acceptsCharset()替换为req.acceptsCharsets()

req.acceptsEncoding()替换为req.acceptsEncodings()

req.acceptsLanguage()替换为req.acceptsLanguages()

从 5.0.0-alpha.1 / 2014-11-06 开始移除

res.json(obj,status)

Express 5不再支持签名res.json(obj, status)。然后像这样将其链接到res.json()方法:res.status(status).json(obj).

从 5.0.0-alpha.1 / 2014-11-06 开始移除

res.jsonp(obj,status)

Express 5不再支持签名res.jsonp(obj, status)。然后像这样将其链接到res.jsonp()方法:res.status(status).jsonp(obj).

从 5.0.0-alpha.1 / 2014-11-06 开始移除

req.param(name)

这种检索表单数据的潜在混乱和危险的方法已被删除。现在需要在req.paramsreq.bodyreq.query对象中专门查找提交的参数名。

从5.0.0-alpha.2 / 2015-07-06开始移除

res.send(body,status)

Express 5不再支持签名res.send(obj, status)。然后像这样将其链接到res.send()方法:res.status(status).send(obj).

从 5.0.0-alpha.1 / 2014-11-06 开始移除

res.send(status)

Express 5不再支持签名res.send(status),其中status是一个数字。相反,使用res.sendStatus(statusCode)函数,它设置HTTP响应头状态代码并发送代码的文本版本:“Not Found”、“Internal Server Error”等。 如果您需要使用res.send()函数发送一个数字,请将该数字引用以将其转换为字符串,以便Express不会将其解释为试图使用不受支持的旧签名。

从 5.0.0-alpha.1 / 2014-11-06 开始移除

res.sendfile()

在Express 5中,res.sendfile()函数已被骆驼式版本res.sendFile()取代。

从 5.0.0-alpha.1 / 2014-11-06 开始移除

res.redirect(url, status)

Express 5不再支持签名res.redirect(url, status)。相反,设置状态,然后像这样将其链接到res.send()方法:res.status(status).send(obj).

从 5.0.0-alpha.6 / 2014-11-06 开始移除

res.vary()

从5.0.0-alpha.3 / 2017-01-28 开始移除

2.2 重构的内容列表:

  • 将路由器移动到它自己的存储库

把路由模块单独拆成了一个仓库,地址如下所示:

GitHub - pillarjs/router: Simple middleware-style router

2.3 发布变更列表:

  • 在所有处理程序中添加对Promises的支持
  • 返回app.router,它通常用于直接调用路由器
  • 使查询解析器选项默认为“simple”
  • 使bodyParser.urlencoded默认为'simple'
  • 使req.host实际返回主机,之前返回的是主机名
  • req.query应该是getter,而不是通过中间件添加
  • 新路径匹配语法
  • 删除Express 3.x中间件错误存根
  • 使用mime-types而不是mime
  • 使用绝对路径检测模块

 

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

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

相关文章

Codeforces Round 890 (Div. 2) D. More Wrong(交互题 贪心/启发式 补写法)

题目 t(t<100)组样例&#xff0c;长为n(n<2000)的序列 交互题&#xff0c;每次你可以询问一个区间[l,r]的逆序对数&#xff0c;代价是 要在的代价内问出最大元素的位置&#xff0c;输出其位置 思路来源 neal Codeforces Round 890 (Div. 2) supported by Constructo…

springboot工程测试临时数据修改技巧

目录 properties临时属性测试注入 args临时参数测试注入 bean配置类属性注入&#xff08;Import&#xff09; SpringBootTest是一个注解&#xff0c;用于测试Spring Boot应用程序。它可用于指示Spring Boot测试应用程序的启动点&#xff0c;并为测试提供一个可用的Spring应用…

Godot 4 源码分析 - Path2D与PathFollow2D

学习演示项目dodge_the_creeps&#xff0c;发现里面多了一个Path2D与PathFollow2D 研究GDScript代码发现&#xff0c;它主要用于随机生成Mob var mob_spawn_location get_node(^"MobPath/MobSpawnLocation")mob_spawn_location.progress randi()# Set the mobs dir…

【C语言】初阶完结练习题

&#x1f388;个人主页&#xff1a;库库的里昂 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 ✨收录专栏&#xff1a;C语言初阶 ✨其他专栏&#xff1a;代码小游戏 &#x1f91d;希望作者的文章能对你有所帮助&#xff0c;有不足的地方请在评论…

Misc取证学习

文章目录 Misc取证学习磁盘取证工具veracryto挂载fat文件DiskGenius 磁盘取证例题[RCTF2019]disk 磁盘[](https://ciphersaw.me/ctf-wiki/misc/disk-memory/introduction/#_2)内存取证工具volatility 内存取证例题数字取证赛题0x01.从内存中获取到用户admin的密码并且破解密码 …

ffmpeg视频音频命令

视频音频合并 视频音频合并&#xff0c;以视频时间为主&#xff0c;音频短了循环 方法1&#xff1a;混音&#xff0c;视频权重0&#xff0c;volume调节音量&#xff0c;aloop无限循环&#xff0c;duration:first为第一个素材的长度 ffmpeg -i video.mp4 -i audio.mp3 -filter_…

P3754. [NOIP2002 提高组] 字串变换

本题思路 纯bfs&#xff0c;注意一个字符中有多个相同的可变字符即可。 代码 void solve() {string a,b; cin>>a>>b; // 读入起始串和结束串vector<pair<string,string>> mss; // 可能有一个字符串的多个变换规则&#xff0c;不能用map&#xff0c;…

如何搭建一个成功的家具小程序

家具行业近年来发展迅猛&#xff0c;越来越多的消费者开始选择在小程序商城上购买家具。因此&#xff0c;制作一款家具小程序商城成为了许多家具商家的必然选择。那么&#xff0c;如何制作一款个性化、功能齐全的家具小程序商城呢&#xff1f;下面将为大家介绍一种简单且高效的…

观察者模式(C++)

定义 定义对象间的一种一对多(变化)的依赖关系&#xff0c;以便当一个对象(Subject)的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并自动更新。 ——《设计模式》GoF 使用场景 一个对象&#xff08;目标对象&#xff09;的状态发生改变&#xff0c;所有的依赖对…

首页文章列表分页模板渲染(Go搭建qiucode.cn 之六)

笔者小站:秋码记录 距离上一篇已过去好久了,当然咯,秋码记录 也已换了本来的面貌,其中林林种种,不可道于外人乎!然而之所以会有第六篇,完全得益于那位订阅的粉丝,也是他唤起了我应该将Go搭建qiucode.cn写完,在此我由衷的感谢这位,且作为本专栏首位订阅者。 接上一篇,…

Pytorch Tutorial【Chapter 3. Simple Neural Network】

Pytorch Tutorial【Chapter 3. Simple Neural Network】 文章目录 Pytorch Tutorial【Chapter 3. Simple Neural Network】Chapter 3. Simple Neural Network3.1 Train Neural Network Procedure训练神经网络流程3.2 Build Neural Network Procedure 搭建神经网络3.3 Use Loss …

SpringBoot——使用@Value()注解获取yml字段为null

文章目录 使用Value注解获取yml字段当字段设为static时获取的为null 使用Value注解获取yml字段 在Spring Boot中&#xff0c;可以使用Value注解来读取和赋值YAML配置文件中的值到变量中。 如何读取YAML配置文件中的值并将其赋值给变量 示例代码: import org.springframework.…

【LeetCode】24.两两交换链表中的节点

题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4] 输出&#xff1a…

python项目各个文件夹的解释

一个大的 Python 项目通常会被组织成多个文件夹&#xff0c;每个文件夹都有特定的功能和用途。 以下是常见的文件夹和它们可能的用途&#xff1a; src 或 source&#xff1a; 这通常是项目的主要源代码目录。您会在这里找到实际执行功能的 Python 脚本或模块。tests 或 testin…

SQL-每日一题【1193. 每月交易 I】

题目 Table: Transactions 编写一个 sql 查询来查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数及其总金额。 以 任意顺序 返回结果表。 查询结果格式如下所示。 示例 1: 解题思路 1.题目要求我们查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数…

HTML <script> 标签

实例 在 HTML 页面中插入一段 JavaScript: <script type="text/javascript"> document.write("Hello World!") </script>(在本页底部可以找到更多实例) 定义和用法 <script> 标签用于定义客户端脚本,比如 JavaScript。 script …

实验笔记之——Windows下的Android环境开发搭建

好久一段时间没有进行Android开发了&#xff0c;最新在用的电脑也没有了Android studio了。为此&#xff0c;本博文记录一下最近重新搭建Android开发的过程。本博文仅为本人学习记录用&#xff08;**别看&#xff09; 目录 安装Android Studio以及JDK JDK Android Studiio …

Java并发系列之七:ConcurrentHashMap

回顾HashMap 既然说到HashMap了&#xff0c;那么我们就先来简单总结一下HashMap的重点。 1.基本结构 HashMap存储的是存在映射关系的键值对&#xff0c;存储在被称为哈希表(数组链表/红黑树)的数据结构中。通过计算key的hashCode值来确定键值对在数组中的位置&#xff0c;假…

【机器学习】西瓜书学习心得及课后习题参考答案—第5章神经网络

笔记心得 5.1神经元模型——这是神经网络中最基本的成分。 5.2感知机与多层网络——由简单的感知机循序渐进引出多层前馈神经网络。 5.3误差逆传播算法——BP算法&#xff0c;迄今最成功的神经网络学习算法。算法如下&#xff08;公式参考西瓜书&#xff09; 停止条件与缓解…

Laravel 框架路由参数.重定向.视图回退.当前路由.单行为 ②

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; THINK PHP &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以点点关注 &#x1f44…