gpt4 book ai didi

Angular 7 通用 firebase 路由

转载 作者:行者123 更新时间:2023-12-02 17:06:37 26 4
gpt4 key购买 nike

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

一切似乎都正常。我可以通过我的 firebase 托管 url 查看 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
}
];

有人可以解释一下,问题出在哪里吗?

最佳答案

确保在 const 应用程序之前将 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();

关于Angular 7 通用 firebase 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56111378/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com