【问题标题】:Angular 7 Universal firebase routingAngular 7 Universal Firebase 路由
【发布时间】:2019-09-30 08:33:56
【问题描述】:

我遵循了这个教程:https://fireship.io/lessons/angular-universal-firebase/

似乎一切正常。我可以通过我的 firebase 托管网址查看 Angular 应用程序。 但是:只要我直接调用路线,例如http://xxx.firebase.app/home我收到此错误(从 firebase 函数日志中复制)

TypeError: handler is not a function
    at cloudFunction (/srv/node_modules/firebase-functions/lib/providers/https.js:57:9)
    at /worker/worker.js:783:7
    at /worker/worker.js:766:11
    at ZoneDelegate.invokeTask (/srv/dist/server.js:5145:31)
    at Zone.runTask (/srv/dist/server.js:4917:47)
    at ZoneTask.invokeTask (/srv/dist/server.js:5220:34)
    at ZoneTask.invoke (/srv/dist/server.js:5209:48)
    at data.args.(anonymous function) (/srv/dist/server.js:6143:25)
    at _combinedTickCallback (internal/process/next_tick.js:132:7)
    at process._tickDomainCallback (internal/process/next_tick.js:219:9)

如果我打电话只是在没有/home 的情况下调用firebase url,它会将我正确重定向到/home 路由

这是我的路由的样子:

const routes: Routes = [
  {
    path: '',
    redirectTo: 'home',
    pathMatch: 'full'
  },
  {
    path: 'home',
    component: HomeComponent
  },
  {
    path: 'privacy',
    component: PrivacyComponent
  }
  ,
  {
    path: 'imprint',
    component: ImprintComponent
  }
];

谁能解释一下,问题出在哪里?

【问题讨论】:

  • 很遗憾,没有子路由有效
  • 我可能有类似的 Angular 体验。 xxx.firebase.app/home/ 有效吗? (注意末尾附加的/
  • 不,这也不起作用..
  • 我也面临同样的问题。关于如何进行的任何想法?

标签: angular firebase google-cloud-functions server-side-rendering


【解决方案1】:

确保您在 const app 之前已将 export 添加到您的 server.ts 文件中。这就是我的案例的问题。

// Express server
export const app = express();

更新

错误解释如下: - 在文件functions/src/index.ts 中,变量app 需要通过以下代码:

const universal = require(`${process.cwd()}/dist/server`).app;
exports.ssr = functions.https.onRequest(universal);

但是,根据${process.cwd()}/dist/server JS 文件(这是server.ts 的转译版本),变量app 是不公开的,因此可以在functions/src/index.ts 中获取对其的访问权限。

这可以通过变量app的声明方式看出:

// Express server
const app = express();

要解决这个问题,只需将变量 app 导出如下:

// Express server
export const app = express();

【讨论】:

    猜你喜欢
    • 2021-09-22
    • 2021-05-20
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    • 2019-05-30
    • 2019-08-27
    相关资源
    最近更新 更多