Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular4通用服务器端呈现将根据请求返回更多呈现的HTML_Javascript_Angular_Server Side Rendering_Angular2 Universal - Fatal编程技术网

Javascript Angular4通用服务器端呈现将根据请求返回更多呈现的HTML

Javascript Angular4通用服务器端呈现将根据请求返回更多呈现的HTML,javascript,angular,server-side-rendering,angular2-universal,Javascript,Angular,Server Side Rendering,Angular2 Universal,我正在尝试使用通用和角度。。一切正常,也可以通过哈希路由直接访问。。但问题是请求总是显示 我希望在 以下是我如何实现的: @NgModule({ bootstrap: [AppComponent], imports: [ BrowserModule.withServerTransition({ appId: 'my-app-id' }), ServerModule, ServerTransferStateModule, AppModul

我正在尝试使用通用和角度。。一切正常,也可以通过哈希路由直接访问。。但问题是请求总是显示

我希望在

以下是我如何实现的:

@NgModule({
  bootstrap: [AppComponent],
  imports: [
    BrowserModule.withServerTransition({
      appId: 'my-app-id'
    }),
    ServerModule,
    ServerTransferStateModule,
    AppModule
  ]
})

export class ServerAppModule {

  constructor(private transferState: TransferState,
  private translateService: TranslateService){
    translateService.use('en');
  }
  // Gotcha
  ngOnBootstrap = () => {
    this.transferState.inject();
  }
}


app.engine('html', ngExpressEngine({
  bootstrap: ServerAppModule
}));

app.set('view engine', 'html');
app.set('views', 'src');


app.get("*", (req, res) => {
  console.time(`GET: ${req.originalUrl}`);
  res.render('../dist/index', {
    req: req,
    res: res
  });
  console.timeEnd(`GET: ${req.originalUrl}`);
});
我的版本是“@angular/common”:“^4.0.0”

使用并从'@nglibs/universalexpress引擎'

经过这次讨论,我可以看到这是一个新的实现

尝试按建议导入,但不起作用(命名空间不存在)

  • 从“@universal/ng express engine”导入{ngExpressEngine}
按照本请求中的建议,使用rc.5版本进行测试

最后,遵循这个链接

使用此库进行测试时,我得到了相同的结果:

从'@nguniversal/express engine'导入{ngExpressEngine}

至少项目正在运行,所以我可以继续编码和使用它。。但我们期待着有一个完整的服务器端渲染


谢谢

对于使用平台服务器的Angular 4+,使用官方的
@nguniversal/express引擎,另一个看起来像是某个人出于某种原因发布的express引擎的旧版本

名称空间现在将是
@nguniversal
,尽管如此,试一试,你应该会没事的

您可以在以下位置找到最新的universal express引擎(用于Angular 4+和平台服务器)的文档


感谢@mark pieszak对您的关注和支持


我可以用它来工作,用有角度的材料和一切。。非常好=)

谢谢你的回答。。我使用了
@nguniversal/express引擎
,但仍然收到服务器端未呈现的html。。我的计划是为4.1争取到角材料的充分支持,并尝试重新制作该项目