关于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
  • 使用绝对路径检测模块

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python批量查字典和爬取双语例句

最近,有网友反映,我的批量查字典工具换到其它的网站就不好用了。对此,我想说的是,互联网包罗万象,网站的各种设置也有所不同,并不是所有的在线字典都可以用Python爬取的。事实上,很多网站为了防…

计算机是怎么存储和识别人类高级语言的

目录 1、计算机是怎么“存储”人类的高级语言的?2、 UTF-8和UTF-32的区别3、UTF-8是如何区分字节的长度呢?(即如何识别这一串二进制是多少个字节的?)4、计算机是如何识别人类的高级语言的? 1、计算机是怎么…

八、复用(1)

本章概要 组合语法继承语法 初始化基类带参数的构造函数 委托 代码复用是面向对象编程(OOP)最具魅力的原因之一。 对于像 C 语言等面向过程语言来说,“复用”通常指的就是“复制代码”。任何语言都可通过简单复制来达到代码复用的目的&#…

使用JProfiler进入JVM分析

要评测JVM,必须将JProfiler的评测代理加载到JVM中。这可以通过两种不同的方式发生:在启动脚本中指定-agentpath VM参数,或者使用attach API将代理加载到已经运行的JVM中。 JProfiler支持这两种模式。添加VM参数是评测的首选方式,集…

【MMU】认识 MMU 及内存映射的流程

MMU(Memory Manager Unit),是内存管理单元,负责将虚拟地址转换成物理地址。除此之外,MMU 实现了内存保护,进程无法直接访问物理内存,防止内存数据被随意篡改。 目录 一、内存管理体系结构 1、…

openssl安装问题合辑

1.openssl拖累nginx编译失败 问题描述: 因为漏洞原因,升级openssl之后需要重新编译nginx,进行了以下步骤: config没问题,但是make一直报错 初步判断是openssl安装有问题,原因不明,重装了opens…

Java后台生成ECharts图片

前言 通过echarts的jar包,Java后台生成一张图片,并把图片插入到word中。关于word插图片的代码在下一章。 需要用到的工具PhantomJS,Echarts-convert.js,jquery.js,echarts.js。 1.PhantomJS 介绍 PhantomJS是一个不需要浏览器的富客户端。 官方介绍&…

第八章:Linux信号

系列文章目录 文章目录 系列文章目录前言linux中的信号进程对信号的处理信号的释义 信号的捕捉信号的捕捉signal()信号的捕捉sigaction() 信号的产生通过终端按键产生信号前台进程与后台进程 kill()用户调用kill向操作系统发送信号raise()进程自己给自己发任意信号(…

利用Google Docs的评论功能投递钓鱼链接

情报背景 利用Google drive等可信云服务进行的网络钓鱼攻击活动日益增长,这种攻击手段利用了高可信度的云服务骗取受害者的信任,并且可以绕过基于域名的安全策略。 近期Avanan公司发现了一种新的邮件钓鱼方式,攻击者利用Google docs的评论功…

计蒜客T1115——字符串判等

水题不解释,考研复习压力偶尔写一道换换心情还不错~ 这里有一个比较有趣的知识点,对于同时输入多个字符串时还要允许空格的输入,那么普通的cin函数就不能满足要求了,这里采用getline函数解决,如下: string …

使用最新技术实现智能考试系统源码

智能考试系统是一种重要的教育技术应用,它能够通过结合计算机科学和教育理论,为教育工作者提供一个高效、灵活和可靠的考试平台。最近,随着人工智能和大数据技术的飞速发展,智能考试系统受到了越来越多的关注。本文将详细介绍如何…

接口测试如何在json中引用mock变量

在测试接口的时候,有的接口需要测试随机传入大量数据,查看数据库是否正常,但是大量的随机数据全靠自己手写会很慢,而且是通过json传递的数据。 这里我们就可以使用mock生成随机变量,然后在json中引用mock变量 首先看…

ElasticSearch 7.4学习记录(基础概念和基础操作)

若你之前从未了解过ES,本文将由浅入深的一步步带你理解ES,简单使用ES。作者本人就是此状态,通过学习和梳理,产出本文,已对ES有个全面的了解和想法,不仅将知识点梳理,也涉及到自己的理解&#xf…

vue3:新特性

一、react和vue的主要区别 (1)数据更新上: 1、 react 采用 fiber架构 ,使用 链表 表示 DOM 结构可以在 diff 时随时中断和继续,利用requestIdleCallback 在空闲时 diff ,防止数据量大 diff 时间长导致卡顿…

线程池-手写线程池C++11版本(生产者-消费者模型)

本项目是基于C11的线程池。使用了许多C的新特性,包含不限于模板函数泛型编程、std::future、std::packaged_task、std::bind、std::forward完美转发、std::make_shared智能指针、decltype类型推断、std::unique_lock锁等C11新特性功能。 本项目有一定的上手难度。推…

【Linux升级之路】5_基础IO

🌟hello,各位读者大大们你们好呀🌟 🍭🍭系列专栏:【Linux升级之路】 ✒️✒️本篇内容:文件操作,文件管理,重定向,简易shell添加重定向功能,文件属…

人物启示-张一鸣与陆奇

在科技行业中,张一鸣与陆奇可谓是两位颇具影响力的人物。张一鸣和陆奇分别是字节跳动(TikTok 的母公司)的创始人和百度前总裁。张一鸣作为字节跳动的创始人,成功打造了今日头条、抖音等知名产品,而陆奇则曾任微软副总裁…

Django Rest_Framework(二)

文章目录 1. http请求响应1.1. 请求与响应1.1.1 Request1.1.1.1 常用属性1).data2).query_params3)request._request 基本使用 1.1.2 Response1.1.2.1 构造方式1.1.2.2 response对象的属性1).data2).status_code3&…

4G型无线液位变送器是什么?

4G型无线液位变送器采用了四代无线通讯技术,与普通液位计相比,免去了布线的烦恼,无需时刻监控现场,在大幅提高工作效率和减少人力成本的同时,还可以随时随地获取监测数据。 4G型无线液位变送器的功能优势:…

jmeter创建一个压测项目

1.jemeter新建一个项目: 2.接下来对Thread进行描述,也可以先使用默认的Thread进行操作。 3.添加http请求头的信息。按照如图所示操作 4.在请求头里面添加必要的字段,可以只填必要字段就可以 5.添加Http请求信息,如下图&#xff…