Firebase 托管找不到 Express 端点
Firebase Hosting can't find Express Endpoints
我已经在 Firebase 上设置了托管并按照 Google 提供的文档配置了我的 Node.js Express 应用程序。包括正确的文件夹结构和命令行指令以初始化 firebase 和 firebase 函数。
文件夹结构:
Project
-- functions
-- node_modules
-- index.js
-- package.json
-- public
-- index.html
-- 404.html
.firebaserc
firebase.json
我已通过以下代码将 Express 应用程序添加到 firebase 函数 http 请求中:
// Set up endpoint
app.get('/api', (req, res) => {
res.json({
message: 'Welcome to the Line Prophet API. Good luck.'
})
});
/**
* Firebase cloud functions
*/
exports.app = functions.https.onRequest(app);
我的 Firebase.json 文件设置为将所有请求定向到应用程序目标:
{
"hosting": {
"public": "public",
"rewrites": [
{
"source": "**",
"destination": "app"
}
]
}
}
一旦我从我的父目录 运行 firebase deploy 一切正常,它说应用程序已部署:
但是之后我导航到 https://line-prophet.web.app/api 并且收到 404 页面未找到错误。
我已经尝试使用 firebase serve 在本地 运行 这个,我遇到了同样的问题。这是短暂的工作,这就是为什么我觉得好像一切都设置正确,但是在再次部署之后它已经永远坏了。任何提示表示赞赏。谢谢!
最新的部署说只有 4 个文件部署到 Firebase,这看起来非常少。我检查了“功能”选项卡,我确实看到 "app" 在那里并且源代码是正确的。
感谢@LawrenceCherone 将 firebase.json 文件更改为:
"rewrites": [
{
"source": "**",
"function": "app"
}
]
解决了我的问题。由于在线文档,我使用的是目标而不是函数,但是将所有请求定向到您设置的用于处理 http 请求的函数更有意义。
我已经在 Firebase 上设置了托管并按照 Google 提供的文档配置了我的 Node.js Express 应用程序。包括正确的文件夹结构和命令行指令以初始化 firebase 和 firebase 函数。
文件夹结构:
Project
-- functions
-- node_modules
-- index.js
-- package.json
-- public
-- index.html
-- 404.html
.firebaserc
firebase.json
我已通过以下代码将 Express 应用程序添加到 firebase 函数 http 请求中:
// Set up endpoint
app.get('/api', (req, res) => {
res.json({
message: 'Welcome to the Line Prophet API. Good luck.'
})
});
/**
* Firebase cloud functions
*/
exports.app = functions.https.onRequest(app);
我的 Firebase.json 文件设置为将所有请求定向到应用程序目标:
{
"hosting": {
"public": "public",
"rewrites": [
{
"source": "**",
"destination": "app"
}
]
}
}
一旦我从我的父目录 运行 firebase deploy 一切正常,它说应用程序已部署:
但是之后我导航到 https://line-prophet.web.app/api 并且收到 404 页面未找到错误。
我已经尝试使用 firebase serve 在本地 运行 这个,我遇到了同样的问题。这是短暂的工作,这就是为什么我觉得好像一切都设置正确,但是在再次部署之后它已经永远坏了。任何提示表示赞赏。谢谢!
最新的部署说只有 4 个文件部署到 Firebase,这看起来非常少。我检查了“功能”选项卡,我确实看到 "app" 在那里并且源代码是正确的。
感谢@LawrenceCherone 将 firebase.json 文件更改为:
"rewrites": [
{
"source": "**",
"function": "app"
}
]
解决了我的问题。由于在线文档,我使用的是目标而不是函数,但是将所有请求定向到您设置的用于处理 http 请求的函数更有意义。