2016-07-04 43 views
1

我一直在瀏覽Angular2快速入門和教程,現在我試圖從一個活的REST Api中獲取數據。我需要通過Api調用傳遞認證參數,並且我正在閱讀的所有內容都表明我應該將這些參數放入ENV變量中。使用Angular2 Typescript和ServerJS訪問.ENV屬性

我無法弄清楚我應該如何做到這一點。我在本地服務器上創建了一個.env文件,我已經使用NPM將dotenv安裝到我的項目中,但沒有找到關於如何使用dotenv的示例,似乎符合我使用的TypeScript導入語法至。

這裏是我的main.ts:

import { }    from 'dotenv/config'; 
import { bootstrap } from '@angular/platform-browser-dynamic'; 
import { AppComponent } from './app.component'; 

bootstrap(AppComponent); 

和樣品app.component.ts:

import { Component } from '@angular/core'; 

@Component({ 
    selector: 'my-app', 
    template: ` 
    <h1>Up and running!</h1> 
    <p>Do not show this at home: {{process.env.TWITTER_CONSUMER_KEY}}</p> 
    `, 
    styleUrls: ['style.css'] 
}) 

export class AppComponent { 

} 

任何幫助,將不勝感激。我已經走出編碼循環一段時間了,這對我來說有點新鮮。

獎金的問題,當我去一個現場服務器或改變它時,我仍然會有.env文件嗎?

+0

你有沒有找到答案? – JAG

+0

尚未給@ Mrinal的答案。被集中在別處。 – Sgiobair

回答

0

我遇到了同樣的問題。找不到妥善的解決辦法,所以我做了這樣的事情:

import { Component } from '@angular/core'; 

@Component({ 
    selector: 'my-app', 
    template: ` 
    <h1>Up and running!</h1> 
    <p>Do not show this at home: {{twitterConsumerKey}}</p> 
    `, 
    styleUrls: ['style.css'] 
}) 

export class AppComponent { 

    public twitterConsumerKey:string; 

    ngOnInit() { 
    this.twitterConsumerKey = process.env.TWITTER_CONSUMER_KEY; 
    } 
} 
1

我認爲你需要初始化dotenv配置方法:

dotenv.config(); 

我通常如下使用:

import * as dotenv from 'dotenv'; 

//Later in your code 
dotenv.config(); 

然後你可以使用你的環境變量。

+0

儘管已安裝,但仍無法找到'dotenv'。 – alex351