为什么Angular Universal的res.render需要这么长时间?

时间:2017-11-15 10:22:41

标签: node.js angular express angular-universal angular5

我正在构建一个Angular Universal App,我现在拥有的只是网站的结构。我在关于为Angular Universal转换我的应用程序的教程中做了一切。

console.log("got Request " + new Date());
res.render(join(DIST_FOLDER, 'browser', 'index.html'), { req , time: true}, 
   function(err, html) {
      console.log("finished Rendering " + new Date());
      res.send(html);
   }   
);

渲染需要3秒半......这对我来说似乎是一段很长的时间。同样在Chrome的DeveloperTools中,TTFB为3.5秒。 除了路由之外,应用程序还没有做任何事情。我不希望我未来的应用程序如此缓慢。

任何人都有线索,如果这是正常的或有什么需要改进? 带有问题https://github.com/Joniras/slow-universal-rendering-example

的Github回购

设置工作区并运行angular-universal:

npm install   
npm run build:universal   
npm run serve:universal     
  

版本:
  Angular CLI: 1.5.0
  Node: 6.11.5   OS: win32 x64   Angular: 5.0.1   ... animations, common, compiler, compiler-cli, core, forms   ... http, language-service, platform-browser   ... platform-browser-dynamic, platform-server, router   @angular/cdk: 5.0.0-rc0   @angular/cli: 1.5.0   @angular/flex-layout: 2.0.0-beta.10-4905443   @angular/material: 5.0.0-rc0   @angular-devkit/build-optimizer: 0.0.33   @angular-devkit/core: 0.0.20   @angular-devkit/schematics: 0.0.35   @ngtools/json-schema: 1.1.0   @ngtools/webpack: 1.8.0   @schematics/angular: 0.1.3   typescript: 2.4.2   webpack: 3.8.1   express 4.16.2
  我必须将样式设为代码,否则我无法发布

1 个答案:

答案 0 :(得分:3)

代码中有超时3000毫秒(UserService)

setTimeout(() => {
          resolve(this.loggedInUser);
        }, 3000);