Node.js Angular 7 Universal(服务器端呈现)[错误引用错误:未定义文档]

Node.js Angular 7 Universal(服务器端呈现)[错误引用错误:未定义文档],node.js,angular,heroku,server-side-rendering,Node.js,Angular,Heroku,Server Side Rendering,我已经为我的项目实现了SSR,并将其部署到heroku。 现在,当我在heroku logs--tail中启动应用程序时,我运行了很多东西,它显著降低了性能。大多数都是错误: 错误引用错误:未定义文档 尽管我使用了这样的结构: if (isPlatformBrowser(this.platformId)) { const overflow = this.isMenuOpened ? 'hidden' : 'auto;'; this.renderer.setStyl

我已经为我的项目实现了SSR,并将其部署到heroku。 现在,当我在heroku logs--tail中启动应用程序时,我运行了很多东西,它显著降低了性能。大多数都是错误:

错误引用错误:未定义文档

尽管我使用了这样的结构:

    if (isPlatformBrowser(this.platformId)) {
      const overflow = this.isMenuOpened ? 'hidden' : 'auto;';
      this.renderer.setStyle(this.document.body, 'overflow', overflow);
    }
每次我重新加载页面,这个东西就会再次运行

在我的
package.json
文件中,我要运行以下命令:

"scripts": {
    "ng": "ng",
    "start": "node dist/server.js",
    "build": "npm run build:server:prod && npm run build:browser:prod",
    "build:server:prod": "ng run oilEnergy:server && webpack --config webpack.server.config.js --progress --colors",
    "build:browser:prod": "ng build --prod"
  }
因此,在部署Heroku时,它会构建服务器和浏览器文件夹,并编译server.js文件,然后负责运行我的应用程序

一段时间后,我的应用程序崩溃,heroku显示的是
应用程序错误
,而不是我的应用程序


我不知道,为什么会这样。可能以前有人遇到过此问题?

尝试使用
文档
而不是
此文档

下面的代码适用于我

import { PLATFORM_ID, Inject } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';


constructor(
    @Inject(PLATFORM_ID) private platformId: Object) {
    if (isPlatformBrowser(this.platformId)) {
      this.bodyTag = document.getElementsByTagName('body')[0];
      this.htmlTag = document.getElementsByTagName('html')[0];
    }
  }

尝试使用
document
而不是
this.document

下面的代码适用于我

import { PLATFORM_ID, Inject } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';


constructor(
    @Inject(PLATFORM_ID) private platformId: Object) {
    if (isPlatformBrowser(this.platformId)) {
      this.bodyTag = document.getElementsByTagName('body')[0];
      this.htmlTag = document.getElementsByTagName('html')[0];
    }
  }

你注入
document
正确吗?@HarunYılmaz是的,我有这些导入构造函数(私有呈现器:render2,@inject(document)私有文档:document){}你注入
document
正确吗?@HarunYılmaz是的,我有这些导入构造函数(私有呈现器:render2,@inject(文件)私人文件:文件{}