Size: a a a

Angular-universal-ru

2020 April 15

SI

Sergey Ivanov in Angular-universal-ru
Подскажите как на SSR узнать hostname?
источник

IK

Igor Kurkov in Angular-universal-ru
Из хедеров в експресс реквесте можно, как language
источник

SI

Sergey Ivanov in Angular-universal-ru
а как их передать в app.component?
источник

SI

Sergey Ivanov in Angular-universal-ru
Igor Kurkov
Из хедеров в експресс реквесте можно, как language
не очень понял, есть где почитать?
источник

SI

Sergey Ivanov in Angular-universal-ru
не хочется хардкодить и использовать enveronments
источник

SI

Sergey Ivanov in Angular-universal-ru
ведь он же должен быть, т.к. идет запрос на генерацию страницы извне
источник

SI

Sergey Ivanov in Angular-universal-ru
в server.ts есть app.get('*', (req, res) => {
в нем можно использовать req.hostname но как его в приложение прокинуть?
источник

IK

Igor Kurkov in Angular-universal-ru
в приложении можно юзать
import { REQUEST } from '@nguniversal/express-engine/tokens';
....

constructor(@Optional()
   @Inject(REQUEST)
   private request: any
) {
 const lang = (this.request.headers['accept-language'] || '')
 const hostname = (this.request.headers['host'] || '')
}

типа такого
но надо пробовать, лучше енвайронменты
источник

IK

Igor Kurkov in Angular-universal-ru
Sergey Ivanov
в server.ts есть app.get('*', (req, res) => {
в нем можно использовать req.hostname но как его в приложение прокинуть?
^^
источник

IK

Igor Kurkov in Angular-universal-ru
> server.ts есть app.get('*', (req, res)

Тут уже оно прокидывает эти токены
источник

IK

Igor Kurkov in Angular-universal-ru
еще можно serverUrl юзать по сути
app.get('*', (req, res) => {
 // console.log(req);
 res.render('index', {
   req,
   res,
   providers: [
     {
       provide: 'serverUrl',
       useValue: `${req.protocol}://${req.get('host')}`,
     },
   ],
 });
});
источник

SI

Sergey Ivanov in Angular-universal-ru
спасибо только что такой код собрал ))
constructor(@Inject(REQUEST) private _request: any)

if (isPlatformServer(this._platformId)) {
     try {
       console.log('hostName: ', JSON.stringify(this._request));
источник

SI

Sergey Ivanov in Angular-universal-ru
но выдается
hostName:  {"cookie":"","headers":{}}
источник

IK

Igor Kurkov in Angular-universal-ru
Igor Kurkov
еще можно serverUrl юзать по сути
app.get('*', (req, res) => {
 // console.log(req);
 res.render('index', {
   req,
   res,
   providers: [
     {
       provide: 'serverUrl',
       useValue: `${req.protocol}://${req.get('host')}`,
     },
   ],
 });
});
вот это думаю поможет решить вопрос имхо, но надо пробовать
источник

SI

Sergey Ivanov in Angular-universal-ru
добавил
    {
       provide: 'serverUrl',
       useValue: ${req.protocol}://${req.get('host')},
     },
собирается 8:30 минут
источник

SI

Sergey Ivanov in Angular-universal-ru
{
       provide: 'ORIGIN_URL',
       useValue: ${http}://${req.headers.host},
     },
источник

SI

Sergey Ivanov in Angular-universal-ru
#вотэтопомогло
источник

IK

Igor Kurkov in Angular-universal-ru
Sergey Ivanov
#вотэтопомогло
Ура)
источник

SI

Sergey Ivanov in Angular-universal-ru
hostName:  localhost:4000
источник

SI

Sergey Ivanov in Angular-universal-ru
но это локально запущено
источник