节点Js环境特定变量开发/测试/ UAT

时间:2018-01-30 22:36:09

标签: javascript angularjs node.js node-modules

我是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

它也失败了。任何人都可以让我知道我在做什么错误以及正确的做法是什么。

提前致谢。

2 个答案:

答案 0 :(得分:1)

我知道有三种方法:

1).env文件

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

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

答案 1 :(得分:0)

您的变量很可能不会导出到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