我正在学习NodeJS的教程。我不认为我错过了任何东西,但每当我调用process。env。NODE_ENV返回的唯一值是undefined。根据我的研究,默认值应该是development。该值如何动态设置,初始设置在哪里?
当前回答
对于使用*nix (Linux, OS X等)的人来说,没有理由通过第二个导出命令来执行它,你可以将它作为调用命令的一部分:
NODE_ENV=development node server.js
更容易,不是吗?:)
其他回答
的过程。Env是对环境的引用,所以你必须在那里设置变量。
使用实例设置Windows环境变量。
SET NODE_ENV=development
在macOS / OS X或Linux上:
export NODE_ENV=development
对我来说,问题是我正在使用pkg库将我的应用程序转换为可执行二进制文件。在这种情况下,公认的解决方案是行不通的。然而,使用下面的代码解决了我的问题:
const NODE_ENV = (<any>process).pkg ? 'production' : process.env.NODE_ENV;
我在GitHub上找到了这个解决方案。
你也可以通过代码来设置,例如:
process.env。NODE_ENV = 'test';
在我的例子中,我有一个节点应用程序。我的结构方式是我有客户端文件夹和服务器文件夹。我的。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)
对于使用*nix (Linux, OS X等)的人来说,没有理由通过第二个导出命令来执行它,你可以将它作为调用命令的一部分:
NODE_ENV=development node server.js
更容易,不是吗?:)