2016-11-04 86 views
2

我嘗試在我的應用程序中模擬請求,但是過程變量存在問題。我將process.env.backendUrl url存儲在後端API中。然後在RestService我:Angular 2 testing - process.env

constructor(private http: Http) { 
    this.rest = process.env.backendUrl + "/api/"; 
} 

,現在是不可能的,因爲在例如LoginComponent我有RestService依賴和我得到這個錯誤運行測試:

zone.js:140 Uncaught Error: Error in ./LoginComponent class LoginComponent_Host - inline template:0:0 caused by: process is not defined 
ReferenceError: process is not defined 
at new RestService (http://localhost:9876/base/src/test.ts:21595:2790) 
at DynamicTestModuleInjector.get (DynamicTestModule.ngfactory.js:170:67) 
at DynamicTestModuleInjector.get (DynamicTestModule.ngfactory.js:180:93) 
at DynamicTestModuleInjector.getInternal (DynamicTestModule.ngfactory.js:255:51) 
at DynamicTestModuleInjector.NgModuleInjector.get (http://localhost:9876/base/src/test.ts:25036:27) 
at TestBed.get (http://localhost:9876/base/src/test.ts:5589:51) 
at _View_LoginComponent_Host0.createInternal (LoginComponent_Host.ngfactory.js:16:74) 
at _View_LoginComponent_Host0.AppView.create (http://localhost:9876/base/src/test.ts:36192:21) 
at _View_LoginComponent_Host0.DebugAppView.create (http://localhost:9876/base/src/test.ts:36404:44) 

我設置proccess .env.backendUrl in enviroment.ts(由angular-cli創建的文件)。

process.env.backendUrl = 'http://localhost:8080'; 

export const environment = { 
    production: false 
}; 

我應該把它設置在別的地方還是有任何方法來告訴業力關於這個變量?

回答

6

如果您正在使用angular-cli,則應該將backendUrl添加到environment

export const environment = { 
    production: false, 
    backendUrl: 'http://localhost:8080' 
}; 

你也應該將其添加在environment.prod.ts文件,設置的URL網址生產。在生產時,將使用.prod文件。

在您的文件中,您應該導入environment(來自environment.ts文件),並使用environment.backendUrl

另請參見:

+0

謝謝你,它工作得很好 – Mossar