我正在学习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 ()