首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 4和环境变量

Angular 4和环境变量
EN

Stack Overflow用户
提问于 2018-01-12 15:46:14
回答 2查看 2.4K关注 0票数 0

我正在尝试将一个基于angular的应用程序部署到bluemix,并且我想使用系统变量(process.env)。不知怎么的,这不起作用,进程只包含title=browser和一个空的环境对象。我把它们设置在环境上,但我不能让dotenv工作。这个应用是基于angular-cli的。

有人知道如何使用或不使用dotenv等安全地存储api密钥吗?

编辑: app.module中的一些代码。我也在main.ts文件中尝试过,但无济于事。

代码语言:javascript
复制
export function restServiceLoader(logger: NGXLogger, http: HttpClient): any {

  logger.debug('test is ' + process.env.TEST);

  return new ApiDataService(logger, http);

}
EN

回答 2

Stack Overflow用户

发布于 2018-07-06 14:28:34

您在Bluemix上设置的环境变量用于托管Angular应用程序的容器。您尝试在Angular应用程序中读取的环境变量适用于浏览器的环境,例如Angular应用程序正在运行的环境。

您可以使用一个类来将您的配置保存为常量,就像John和解释过的here所建议的那样,或者您也可以调用您的后端来获取仅保存在后端的配置。

在设计方面,敏感配置不应该保存在前端/Angular应用程序中,例如浏览器环境中,因为它在那里很容易受到攻击,并且您几乎无法控制如何保护和维护它。

票数 0
EN

Stack Overflow用户

发布于 2018-01-12 16:20:22

您可以使用位于src/environments文件夹下的environment.ts文件,该文件如下所示:

代码语言:javascript
复制
export const environment = {
  production: false,
  api:'http://someApi.com'
};

然后在您的组件/服务中使用环境:

代码语言:javascript
复制
import {environment} from '../environments/environment';

并像这样使用它:在该组件或服务中的任何位置使用environment.api

我不会在环境文件中存储私钥,只会存储公钥。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48221718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档