Javascript Express JS无法识别环境

Javascript Express JS无法识别环境,javascript,node.js,express,environment-variables,Javascript,Node.js,Express,Environment Variables,我的应用程序文件夹结构是这样的 应用程序/ 配置/ app.js env.js server.js 每当我开始运行我的app.js文件时,它都会给我一个未定义的启动服务器。 下面是代码的要点 node server.js 输出 这与您提到的文件夹结构不同: app = require('./config/app')(); 它似乎是相反的。默认情况下,process.env.NODE\u env是未定义的。例如,如果您在测试环境中运行node(node\u ENV=test node app.

我的应用程序文件夹结构是这样的

应用程序/ 配置/ app.js env.js server.js

每当我开始运行我的app.js文件时,它都会给我一个未定义的启动服务器。 下面是代码的要点

node server.js

输出
这与您提到的文件夹结构不同:

app = require('./config/app')();

它似乎是相反的。

默认情况下,
process.env.NODE\u env
是未定义的。例如,如果您在测试环境中运行node(
node\u ENV=test node app.js
),您就不会有这个问题

我建议您在
模块中添加此行。导出功能:

if (app.settings.env === 'development') process.env.NODE_ENV = 'development';

这是意料之中的。默认情况下没有NODE_ENV环境变量,除非您显式设置它,因此
process.ENV.NODE_ENV
是未定义的。这没有问题。

first app.js是根文件。lemme将其更改为server.js能否请您输入启动服务器时显示的确切输出。@Kamrul在末尾添加。它正在工作,但有一个问题,如果我将其放入config/app.js module.exports中,它是否将获得config/env.development中指定的所有开发需求?是的。如果在config/env.js module.exports函数的开头添加该行,则应用程序将按照
app.configure下的指定进行配置('development'…
block。我认为它应该放在config/app.js而不是env.js中,因为我必须再次在env文件中初始化应用程序。更新:不,它应该放在env文件中。
app = require('./config/app')();
if (app.settings.env === 'development') process.env.NODE_ENV = 'development';