在Node.JS中设置/获取env

时间:2015-11-24 23:55:55

标签: javascript node.js express

在node.js中设置env时,以下内容之间的区别是什么: app.set('env', 'production'); process.env.NODE_ENV = 'production';

当我使用前者时,结果将是:

process.env.NODE_ENV = 'production';
console.log('env1:',app.get('env'));// returns the default env which is development
console.log('env2:',process.env.NODE_ENV); //returns production

当我使用后者时,结果将是:

app.set('env', 'production')
console.log('env1:',app.get('env')); // returns production
console.log('env2:',process.env.NODE_ENV); // returns undefined

为什么process.env.NODE_ENV = 'production';不会改变我的app.get('env')以及为什么app.set('env', 'production')不会改变process.env.NODE_ENV;换句话说,它们是两个独立的变量,它们不是相互关联的吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

process.env.NODE_ENV将设置节点env进程,而在app.set的情况下,您将设置应用程序的环境(就像任何其他变量一样)。 Express是围绕节点构建的Web应用程序框架,因为它是一个推动者。因此,这些是我们看到的不同变量。但是,当你执行app.get('env')时,它会将你与process.env.NODE_ENV匹配。