我正在学习NodeJS的教程。我不认为我错过了任何东西,但每当我调用process。env。NODE_ENV返回的唯一值是undefined。根据我的研究,默认值应该是development。该值如何动态设置,初始设置在哪里?


当前回答

在我的例子中,我有一个节点应用程序。我的结构方式是我有客户端文件夹和服务器文件夹。我的。env文件和这两个文件夹放在一起。我的服务器文件需要。env文件。它返回未定义,因为它不在服务器文件中。这是一个疏忽。

App
-client
-server
-.env

Instead I moved .env inside server file like so:

App
-client
-server
 |-.env <---here
 |-package.json
 |-and the rest of the server files...

(before this - ofcourse have the dotenv npm package installed and follow its doc)

其他回答

对我来说,问题是我正在使用pkg库将我的应用程序转换为可执行二进制文件。在这种情况下,公认的解决方案是行不通的。然而,使用下面的代码解决了我的问题:

const NODE_ENV = (<any>process).pkg ? 'production' : process.env.NODE_ENV;

我在GitHub上找到了这个解决方案。

如果你在React中遇到这个问题,你需要react-scripts@0.2.3和更高的版本。此外,对于NODE_ENV以外的其他环境变量,它们需要使用REACT_APP_作为前缀。

如果您定义了任何名为process的函数,也可能会导致此问题。

对于使用*nix (Linux, OS X等)的人来说,没有理由通过第二个导出命令来执行它,你可以将它作为调用命令的一部分:

NODE_ENV=development node server.js

更容易,不是吗?:)

在应用程序中尽可能早地要求并配置dotenv。

要求(' dotenv ') . config ()