加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

获取Angular Universal中的主机名和路径名信息

发布时间:2020-12-17 17:28:42 所属栏目:安全 来源:网络整理
导读:有没有人知道如何在Angular universal中访问主机名和路径名信息? 在客户端应用程序中,您可以访问具有该信息的窗口对象. 我只需要服务器上的那些信息? 解决方法 随着 ngExpressEngine: server.ts: ...app.engine('html',(_,options,callback) = { let eng
有没有人知道如何在Angular universal中访问主机名和路径名信息?

在客户端应用程序中,您可以访问具有该信息的窗口对象.

我只需要服务器上的那些信息?

解决方法

随着 ngExpressEngine:

server.ts:

...
app.engine('html',(_,options,callback) => {
  let engine = ngExpressEngine({
    bootstrap: ServerAppModule,providers: [ { provide: 'host',useFactory: () => options.req.get('host') } ]
  });

  engine(_,callback)
})
...

app.component.ts:

import { Inject,Injector,PLATFORM_ID } from '@angular/core';
import { DOCUMENT,isPlatformServer } from '@angular/common';

...

constructor(@Inject(DOCUMENT) private document,private injector: Injector,@Inject(PLATFORM_ID) private platformId: Object) {
  if (isPlatformServer(this.platformId)) {
    console.log(this.injector.get('host'))
  } else {
    console.log('document: ',document.location.hostname);
  }
}

没有ngExpressEngine:

server.ts:

...
app.engine('html',callback) => {
  const opts = {
    document: template,url: options.req.url,extraProviders: [{ provide: 'host',useFactory: () => options.req.get('host') }]
  };
  renderModuleFactory(AppServerModuleNgFactory,opts)
    .then(html => callback(null,html));
});
...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读