Node.js 中的 NODE_ENV 是什么?

2025年2月22日 | 阅读 4 分钟

在开发 Node.js 应用程序时,处理开发、测试和生产等不同环境的许多配置非常重要。NODE_ENV 环境变量是实现此目的的重要工具。这种灵活性有助于开发者设计条件系统,以便它们可以根据运行的上下文以不同的方式运行。

NODE_ENV 是什么?

Node.js 应用程序使用环境变量 NODE_ENV 来识别其正在运行的环境。此环境变量可以指向我们创建的任何其他开发、生产、测试或自定义环境。遵循环境和操作优化配置策略是 NODE_ENV 值的一个常见用例。

目标

  • 环境区分:开发者可以使用 NODE_ENV 来区分开发、生产、测试、预演和其他环境。
  • 配置:它通常用于根据环境配置各种应用程序功能,包括错误处理、数据库连接、第三方集成和日志记录级别。

NODE_ENV 的阶段

NODE_ENV 有三个阶段,包括开发、生产和测试。默认情况下,Node.js 假定系统处于开发状态。

1. 开发模式

Node.js 应用程序在分步构建过程中以开发模式运行。此模式简化了故障跟踪,并提供了有关过程或故障的详细信息。它具有大量使开发更容易的新功能。使用 NODE_ENV=development 我们可以将 NODE_ENV 配置为以开发模式运行。

2. 生产模式

当应用程序处于生产模式时,Node.js 会收到通知,表明它已准备好部署。性能是此模式下的主要关注点,并且会生成少量控制台日志以防止控制台过于混乱。此模式有助于所用资源的质量。使用 NODE_ENV=event 将 NODE_ENV 配置为事件模式。

3. 测试模式

应用程序创建后,我们需要对其进行测试。这需要建立一个测试环境以进行可靠和一致的测试。使用 NODE_ENV=test 将 NODE_ENV 配置为测试模式。

NODE_ENV 的重要性

  • 配置管理
    为环境输入特定配置设置的能力是 NODE_ENV 配置功能的一个关键特性。它适用于日志记录层、数据库连接和 API 端点等。
  • 性能提升
    在生产系统中,我们可以禁用仅在开发过程中需要的特定功能,例如详细的日志记录或调试工具。这可以大大提高应用程序的性能。
  • 安全性
    与开发相比,我们可以在生产环境中实施更严格的安全措施。通过使用 NODE_ENV,我们可以在不中断开发过程的情况下保证生产环境中应用程序的安全性。
  • 错误处理
    根据环境,错误处理要求可能不同。例如,在生产环境中,我们可能希望报告错误并向用户显示通用错误消息,但在开发环境中,我们可能希望显示更详细的错误消息。

配置示例

日志记录:在生产环境中减少日志记录,但在开发环境中提供详细的日志记录(例如,使用 Morgan 中间件)。

错误处理:在开发过程中显示详细的错误消息和堆栈跟踪;在实践中显示通用的错误消息。

数据库配置:在开发和生产计划中使用特定的数据库连接或配置。

第三方集成:根据情况启用或禁用第三方集成(例如调查和分析)。

在不同操作系统上设置 NODE_ENV

Linux

Windows 命令提示符

Windows PowerShell

示例 1

使用代码在不同操作系统上设置 NODE_ENV

输出

What is NODE_ENV in Node.js?

示例 2

输出

What is NODE_ENV in Node.js?

示例 3

输出

What is NODE_ENV in Node.js?

结论

总之,NODE_ENV 功能是一个出色的 Node.js 工具,它允许我们配置我们的应用程序以在不同环境中以不同的方式运行。在开发、生产或测试过程中可以修改 NODE_ENV,以帮助管理配置、提高安全性、提高性能和管理信息。上面的示例展示了如何配置它。Express 应用程序的核心数据库和主要配置使用 NODE_ENV。理解和使用 NODE_ENV 可以显著提高我们的 Node.js 应用程序的性能和外观。