我使用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的东西而不是有角色的东西。
如何从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[]> { ...}
}
答案 0 :(得分:2)
使用process.env
然后服务器端(nodejs)可以将它们放入结构中。由于您使用sails.js
,请设置post
路由或api调用,以json格式发送此结构。
前端(浏览器)应用程序可以进行http.post调用以在运行时进行调用。
这样,您的前端应用程序代码库中的参数集不会捆绑/硬编码。
如果第三方服务需要密码凭证,则可以从服务器端更好地处理此类呼叫,如下所示:
(浏览器) - api call - &gt; (您的服务器) - api通话 - &gt; (第三方)
这样就不会暴露第三方的凭证。并且api对您的服务器的调用应该受到一些身份验证机制的保护。