从节点视图中读取环境变量

时间:2014-02-12 05:35:54

标签: javascript node.js express

我开始使用NodeJs。我目前正在使用Express来渲染视图,我想设置一些条件。

我的开发环境使用NodeMon和Reload每次修改源代码时自动刷新浏览器。我按如下方式设置了依赖项:

{
  "scripts": {
    "start": "nodemon app.js"
  },
  "dependencies": {
    "express": "3.4.8",
    "ejs-locals": "1.0.2",
    "ejs": "*"
  },
  "devDependencies": {
    "nodemon": "1.0.14",
    "grunt": "*",
    "grunt-contrib-less": "~0.9.0",
    "grunt-contrib-cssmin": "~0.7.0",
    "reload": "~0.1.0"
  }
}

这可确保我的生产环境不会加载应用程序运行所不需要的任何内容。

重新加载使用/reload/reload.js中的javascript文件来刷新浏览器。此文件添加在我的主layout.ejs文件中,因此它可以在所有视图上运行。

我正在尝试做这样的事情,以便它不会在生产服务器上呈现:

<%if (process.env.NODE_ENV === 'development') { %>
        <script src="/reload/reload.js"></script>
<% } %>
  • 这不起作用,从视图中检查当前环境的正确方法是什么?
  • 这样做可以吗?这会违反某种模式吗?
  • 我是否应该直接从控制器将当前环境设置传递给视图?

1 个答案:

答案 0 :(得分:5)

尝试:

<%if (settings.env === 'development') { %>
        <script src="/reload/reload.js"></script>
<% } %>

另外,ejs-locals不会被维护,所以不应该使用。