【发布时间】:2017-08-12 09:00:09
【问题描述】:
我使用sails.js 编写了一个非常简单的服务。它使用基本身份验证来访问其服务。
我还有一个用 Angular 编写的单独前端,使用 @angular/cli。
我为 prod 和 dev 设置了两组环境变量。例如:
// dev
ADMIN=admin
ADMIN_PASS=mypassword123
API_ENDPOINT=http://localhost:1337/endpoint
这对于 prod 来说显然是不同的。我的问题是我正在使用 Heroku 部署它。您可以轻松地在 heroku 中设置环境变量,但我不知道如何访问它们。我知道你可以在src/environments 中设置东西,但这会将我的变量置于代码控制中。
我也尝试过process.env,但我了解到这是一个 node.js 的东西,而不是 Angular 的东西。
如何从 angular2 访问系统环境变量?
我如何使用它的示例:
@Injectable()
export class HeroService {
private heroesUrl = 'api/heroes'; // <- this should be grabbed from environment
private adminUser = 'admin'; // this line too...
private adminPass = 'myPassword'; // same with this line...
constructor (private http: Http) {}
getHeroes(): Observable<Hero[]> { ...}
}
【问题讨论】:
-
那么您想在部署期间还是在运行应用程序时访问这些变量?
-
我的想法是两者兼而有之?比如,我将有一个
service/something.js that将使用上面的值调用某个 api 端点。 -
当您希望向每个客户端公开身份验证数据时,为什么要保护您的 API?
-
我没有。这是从一个应用程序到另一个应用程序的通信。
标签: javascript angular heroku