关键要点
- 切换到生产模式可显着提升 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、C 和浏览器之间到底有什么关系?它们之间看似毫无关联,但实际上,它们在现代网络开发中扮演着非常重要的角色。今天我们就来深入探讨一下这三者之间的紧密联系。通过这篇文章,你将了解到JavaScript如何在浏览器中运行,C 在浏览器引擎中的作用,以及它们如何共同推动网页的渲染和交互。JavaScript与浏览器的关系我们都知道,JavaScript是前端开发的核心语言,它直接在浏览器中运行,让网页变得生动有趣。你是否曾经想过,为什么JavaScr

Node.js擅长于高效I/O,这在很大程度上要归功于流。 流媒体汇总处理数据,避免内存过载 - 大型文件,网络任务和实时应用程序的理想。将流与打字稿的类型安全结合起来创建POWE

Python和JavaScript在性能和效率方面的差异主要体现在:1)Python作为解释型语言,运行速度较慢,但开发效率高,适合快速原型开发;2)JavaScript在浏览器中受限于单线程,但在Node.js中可利用多线程和异步I/O提升性能,两者在实际项目中各有优势。

JavaScript起源于1995年,由布兰登·艾克创造,实现语言为C语言。1.C语言为JavaScript提供了高性能和系统级编程能力。2.JavaScript的内存管理和性能优化依赖于C语言。3.C语言的跨平台特性帮助JavaScript在不同操作系统上高效运行。

JavaScript在浏览器和Node.js环境中运行,依赖JavaScript引擎解析和执行代码。1)解析阶段生成抽象语法树(AST);2)编译阶段将AST转换为字节码或机器码;3)执行阶段执行编译后的代码。

Python和JavaScript的未来趋势包括:1.Python将巩固在科学计算和AI领域的地位,2.JavaScript将推动Web技术发展,3.跨平台开发将成为热门,4.性能优化将是重点。两者都将继续在各自领域扩展应用场景,并在性能上有更多突破。

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

是的,JavaScript的引擎核心是用C语言编写的。1)C语言提供了高效性能和底层控制,适合JavaScript引擎的开发。2)以V8引擎为例,其核心用C 编写,结合了C的效率和面向对象特性。3)JavaScript引擎的工作原理包括解析、编译和执行,C语言在这些过程中发挥关键作用。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

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

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3汉化版
中文版,非常好用

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。