Express中的NODE_ENV是什么?
var app = express(); app.set('views',settings.c.WEB_PATH + '/public/templates'); app.set('view engine','ejs'); app.configure(function(){ app.use(express.favicon()); app.use(express.static(settings.c.WEB_PATH + '/public')); app.use(express.bodyParser()); app.use(express.cookieParser()); app.use(express.methodOverride()); app.use(express.session({ cookie:{ domain:"."+settings.c.SITE_DOMAIN, maxAge:1440009999}, secret:'hamster', store: r_store, })); app.use(useragent.express()); app.use(flash()); app.use(passport.initialize()); app.use(passport.session()); });
这是我的应用程序。 我正在生产中运行它。
但是,有人告诉我关于NODE_ENV
。 我必须将其添加到此代码? 我如何添加?
NODE_ENV
是一个由快速 web服务器框架stream行的环境variables 。 运行节点应用程序时,可以检查环境variables的值,并根据值执行不同的操作。 NODE_ENV
具体用于(通过约定)来说明特定环境是生产环境还是开发环境。 如果在开发环境中运行,常见的用例是运行其他debugging或日志logging代码。
访问NODE_ENV
您可以使用以下代码自行访问环境variables,以便您可以执行自己的检查和逻辑:
var environment = process.env.NODE_ENV
或者使用快速' app.get('env')
( 注意:默认为"development"
)
请注意,如果您没有为您的环境明确设置NODE_ENV
,则它将是undefined
。
设置NODE_ENV
如何真正设置环境variables因操作系统而异,也取决于用户的设置。
如果要将环境variables设置为一次性,可以从命令行执行:
- linux&mac :
export NODE_ENV=production
- windows :
set NODE_ENV=production
从长远来看,你应该坚持这样做,以便它不会取消设置,如果你重新启动 – 而不是列出所有可能的方法来做到这一点,我会让你自己search如何做到这一点!
公约已经规定,只有两个值,你应该使用NODE_ENV
,无论是production
或development
,都是小写。 没有什么能阻止你添加更多的值,但这可能不是一个好主意,因为我在许多node_modules中看到了很多这样的代码:
var development = process.env.NODE_ENV !== 'production';
请注意,尝试从节点应用程序本身设置NODE_ENV
是一个非常糟糕的主意 – 如果这样做,它将只适用于从其设置的进程 ,所以事情可能不会像你期望的那样工作。 不要这样做 – 你会后悔的。
好,
NODE_ENV代表快递服务器中的环境variables …
这是我们如何设置和检测我们在哪个环境…
这是非常普遍的使用production
和development
…
组:
export NODE_ENV=production
得到:
你可以使用app.get('env')