关键要点
- 切换到生产模式可显着提升 Express 应用性能,因为生产模式省去了开发模式中的日志记录和异常堆栈跟踪任务。
- 在 Express 4.x 中启用 GZIP 压缩可以缩小 HTTP 负载,从而提高性能。这可以通过安装 compression 模块并将其作为第一个中间件函数来实现。
- 删除不必要的中间件、考虑使用更简单的模板引擎以及有效缓存常用变量可以进一步优化 Express 应用的性能。可以使用 Gulp 等构建工具来压缩和合并 HTML 模板、CSS 和 JavaScript 文件,并且应限制会话变量的使用以避免内存相关的性能问题。
Node.js 彻底改变了 Web 开发,Express 框架功不可没。 Express 可能不是最快或最先进的服务器选项,但它几乎肯定是使用最广泛的,每月下载量超过 300 万次。如果您什么都不做,Node.js 和 Express 的运行速度也会非常快。但是,有一些简单的方法可以使 Express 4.x 运行得更快……
- 切换到生产模式
Express 可以运行在多种模式下。默认情况下,它假定为开发模式,该模式提供异常堆栈跟踪和其他日志记录任务。还有一个调试模式,它将消息记录到控制台,例如:
<code>DEBUG=express:* node ./app.js</code>
在您的实时服务器上,您可以通过切换到生产模式来显着提高性能。这可以通过将 NODE_ENV 环境变量设置为 production 来实现。可以在启动 Express 应用程序之前在 Windows 的当前会话中设置它:
<code>set NODE_ENV=production</code>
或 Mac/Linux:
<code>export NODE_ENV=production</code>
Linux 用户还可以在启动时在一行中设置 NODE_ENV:
<code>NODE_ENV=production node ./app.js</code>
理想情况下,您应该通过将 <code>export NODE_ENV=production</code> 添加到您的 ~/.bash_profile
或相应的启动脚本中来配置您的环境。
- 启用 GZIP
Express 4.x 提供了最少的可用功能,可以通过中间件来增强。一个不太明显的缺失功能是 GZIP 压缩,它可以缩小 HTTP 负载,以便浏览器在接收时可以对其进行扩展。要添加 GZIP,请使用 npm 安装 compression 模块:
<code>npm install compression --save</code>
(根据您的设置,您可能需要在 Mac/Linux 上使用 sudo——有很多方法可以解决这个问题。)在您的主要应用程序启动文件中,包含 compression 模块:
<code>var compression = require('compression');</code>
然后将其作为第一个中间件函数(在其他 Express .use 方法之前)安装:
<code>DEBUG=express:* node ./app.js</code>
- 删除不必要的中间件
如果您使用 Express Generator 或类似的过程生成了预构建的应用程序,请删除您未使用的任何中间件模块。例如,如果您不使用 cookie,您可以删除 cookie-parser 模块或使用 req.cookies 和 res.cookie 实现更简单的替代方案。在生产模式下,可以删除某些进程,例如调试输出,例如:
<code>set NODE_ENV=production</code>
也就是说,最好保留 serve-favicon。浏览器会频繁请求 favicon.ico 文件,并且该模块可以改进缓存。
- 考虑使用更简单的模板引擎
Jade 是许多 Express 安装的默认模板引擎,它是一个不错的选择。但是,如果您乐于编写自己的 HTML,并且只需要基本的插值和求值,请考虑使用轻量级的替代方案,例如 doT,它可以使用 express-dot-engine 模块作为 Express 中间件添加。或者,您可以绕过模板引擎以获得更简单的响应,例如:
<code>export NODE_ENV=production</code>
无论您使用哪个模板引擎,始终确保启用了视图缓存:
<code>NODE_ENV=production node ./app.js</code>
- 记住缓存!
与大多数基于服务器的应用程序不同,Node.js 应用程序永久运行。因此,您可以设置诸如数据库连接对象之类的常用变量一次,并在每个用户的每个请求期间重复使用它们。可以根据需要扩展此概念。一般来说,您可以缓存的常用项目越多,性能就越好。例如,假设您的基于 Express 的 CMS 应用程序在主页上显示了您最近五篇文章的链接。该列表可以生成并存储在一个变量中,并且仅在发布新文章时更新。
额外快速提示
想要更多?…
- 考虑使用 nginx 来提供静态内容,并减轻 Node.js 和 Express 的负载。
- 使用 Gulp 等构建工具来压缩和合并您的 HTML 模板、CSS 和 JavaScript 文件。
- 限制会话变量的使用。用户会话数据通常存储在内存中,随着使用量的增长,这可能会导致性能问题。考虑只使用 ID,然后在请求期间从数据库中获取用户信息。
- 将最大 HTTP 套接字数从五个增加到更高的数字,例如:
<code>npm install compression --save</code>
- 在可能的情况下,并行调用阻塞操作序列,而不是按顺序调用。
- 避免在除应用程序初始化之外的所有内容中使用同步阻塞调用。
- 始终注意,为一个用户运行的代码会阻塞为其他每个用户运行的代码。
您是否有其他关于 Node.js 或 Express 的性能提示?我很乐意在评论中听到它们。
(此处应添加关于 Node.js 性能调整的常见问题的章节,内容与输入文本中提供的相同)
以上是5个简易性能调整node.js express的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。 1.Python以简洁语法和丰富库生态着称,适用于数据分析和Web开发。 2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安装,因为它已内置于现代浏览器中。你只需文本编辑器和浏览器即可开始使用。1)在浏览器环境中,通过标签嵌入HTML文件中运行。2)在Node.js环境中,下载并安装Node.js后,通过命令行运行JavaScript文件。

如何在Quartz中提前发送任务通知在使用Quartz定时器进行任务调度时,任务的执行时间是由cron表达式设定的。现�...

在JavaScript中如何获取原型链上函数的参数在JavaScript编程中,理解和操作原型链上的函数参数是常见且重要的任�...

在微信小程序web-view中使用Vue.js动态style位移失效的原因分析在使用Vue.js...

在Tampermonkey中如何对多个链接进行并发GET请求并依次判断返回结果?在Tampermonkey脚本中,我们经常需要对多个链...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver CS6
视觉化网页开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

禅工作室 13.0.1
功能强大的PHP集成开发环境