#node.js #angular #docker #angular-universal
Вопрос:
Я пытаюсь захватить переменную среды из контейнера Docker, используя Angular Universal. Мне нужно, чтобы я мог передать это в свой браузер для использования компонентом app.во время выполнения.
ENV задается моим файлом Docker и присутствует внутри контейнера при его запуске
VARS_TEST_TOKEN='HELLO_WORLD'
На стороне сервера я вытаскивал модуль процесса из Node.js и захват переменной внутри сервера для использования в качестве токена ввода. Когда я запускаю это, я вижу переменную, отображаемую на стороне сервера.
export const VARS_TEST_TOKEN = new InjectionToken<string>('');
export const varsTestFactory = process.env['VARS_TEST_TOKEN']
Внутри моего модуля я настроил его как поставщика, который будет внедрен в мой компонент
@NgModule({
declarations: [
AppComponent,
],
imports: [
BrowserTransferStateModule
],
providers: [{
provide: VARS_TEST_TOKEN,
useValue: varsTestFactory,
},]
Наконец, мой компонент app.component выглядит так
constructor(
@Inject(DD_VARS_TEST_TOKEN) private _token: string,
){
console.log("IS THIS THING ON ", _token);
}
В основном в браузере появляется следующее.
IS THIS THING ON: undefined
Нужно ли мне делать это с помощью модуля BrowserTransferStateModule? Я не был уверен, как это работает.