【问题标题】:Node Js Environment Specific Variables Dev/Testing/UATNode Js 环境特定变量 Dev/Testing/UAT
【发布时间】:2018-07-09 22:36:07
【问题描述】:

我是 Node js 的新手,开始使用 Angular 1.2 和 Node js 开发 Angular 应用程序。到目前为止,我已经在节点 services.js 中硬编码了 REST API(Java) 端点。现在我想加载特定于环境的基本端点 URI。我尝试了几种方法,为 process.env 设置一个新的键值,一个 env 文件并加载它。谁能帮帮我。

我尝试了以下方法。

在根文件夹下创建 devEnv.env 文件。

添加了 3 个键值对

hostname = xyz
apikey = 123
devUrl = xyz/xyz/xyz.com/

然后在终端中,我正在尝试将其添加到源中。

$ source denEnv.env

我找不到源。

我在 package.json 文件中添加脚本的另一种方式

{
  "start-dev": "source devEnv.env; node server.js"
}

在我执行的终端中

$ npm start-dev

它也失败了。谁能告诉我我在做什么错误以及正确的方法是什么。

提前致谢。

【问题讨论】:

    标签: javascript angularjs node.js node-modules


    【解决方案1】:

    您的变量很可能没有被导出到 shell。为了能够获取您的 devEnv.env 脚本,请尝试按如下方式对其进行修改:

    #!/bin/bash
    
    export hostname=xyz
    export apikey=123
    export devUrl=xyz/xyz/xyz.com/
    

    您很可能需要授予它可执行权限:

    chmod +x devEnv.env
    

    然后通过运行获取它:

    . devEnv.env
    

    另一个例子可以在这里找到:Set environment variables from file

    【讨论】:

      【解决方案2】:

      我知道三种方法:

      1) .env 文件

      您需要使用npm install/yarn add 安装dotenv 软件包,并在您的主文件(例如index.js)顶部放置require('dotenv').config()。这应该将您的变量加载到节点。

      2) 一开始就通过了

      如果您想传递少量环境变量,您可以在 package.json 中尝试这样的操作:

      {
        "start-dev": "hostname=xyz apikey=123 devUrl=xyz/xyz/xyz.com node server.js"
      }
      

      建议:环境变量应类似于 HOSTNAMEAPI_KEYDEV_URL

      3) 系统环境变量

      解决方案:Set environment variables from file

      【讨论】:

      • 感谢您的信息。我已经尝试过第一种方法及其工作。我什至尝试使用 env2 包并且工作正常。再次感谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-25
      • 1970-01-01
      • 1970-01-01
      • 2020-03-06
      • 2018-01-17
      • 2016-10-13
      • 2019-06-06
      相关资源
      最近更新 更多