Node.js NODE_ENV是什么意思
环境变量: 在深入探讨NODE_ENV之前,让我们先了解一下环境变量的背景。环境变量是一种动态命名的值,通常用于从外部匿名地将值配置到代码中。简单来说,环境变量是一种在程序外部设置并且可以通过某种机制在代码内部匿名使用的变量(键值对)。这些环境变量是在进程启动时设置的,并由Node.js的process.core模块提供的env属性进行托管。
环境变量的示例:
上述环境变量可以按照以下方式访问:
process.env对象是一个全局的Node对象,变量都以字符串的形式传递。变量名全部大写,单词之间用下划线分隔,这是一个长期以来使用的约定。
现在我们对环境变量有了一些了解,让我们继续学习一下NODE_ENV。
NODE_ENV是什么?
NODE_ENV 是一个表示express服务器中node环境的环境变量。 NODE_ENV 环境变量指定应用程序运行的环境(通常为开发或生产环境)。根据这个环境变量,应用程序可以执行特定的任务,比如打开或关闭调试、监听特定的端口等。
NODE_ENV作为性能优化器: 为了提高性能,我们可以将NODE_ENV设置为”production”。
将NODE_ENV设置为”production”可以使Express:
- 缓存视图模板。
- 缓存从CSS扩展生成的CSS文件。
- 生成更简洁的错误信息。
从而提高应用程序的性能,相对于开发环境下要慢得多。
如何正确设置NODE_ENV?
NODE_ENV的设置方式与其他环境变量相同,具体取决于所使用的平台。
在应用启动时设置: 在所有平台上,我们可以在应用启动时显式地设置 NODE_ENV,如下所示:
访问 NODE_ENV: 我们可以像访问其他环境变量一样,使用NodeJS的process和env来访问NODE_ENV,就像我们在学习环境变量时已经看到的那样。
我们可以通过检查 process.env.NODE_ENV 的值来编写特定环境的代码。
以下是几个代码片段供参考,用于访问和使用 NODE_ENV:
示例1:
示例2:
请注意:
- 我们可以使用express提供的app.get(‘env’)函数来获取NODE_ENV的值,但默认值是”development”而不是”production”。
- 如果未显式设置环境的NODE_ENV,并且使用process.env访问,那么它将是undefined。
- 在应用程序内部设置NODE_ENV是一个不好的主意。在这种情况下,它只会应用于设置它的进程。
节点应用程序在项目目录的根目录中包含一个.env文件,它充当一个隐藏文件,用于将环境变量传递给应用程序。它是一个只有开发人员才能访问的秘密文件,因此可以用于存储私有/秘密/隐藏数据(即您不能公开的数据,即易受攻击的数据),它可以用于存储来自外部服务的API密钥。
.env是一个shell文件,它消除了在名称或值周围添加引号的需要。另一个细致的规则是在给变量赋值时等号的周围不能有空格, 例如 VAR_NAME=value。 通常,变量定义是在单独的一行上提供的。
结论: 在本文中,我们基本涵盖了有关NODE_ENV的所有内容。我们了解了它与其他环境变量类似,但当我们想要编写一些特定于环境的代码或逻辑时,它可以是一个方便的工具。我们了解了如何设置和使用NODE_ENV环境变量,以及它的目的和用途。