node.js - Firebase 托管无法访问 api 路由节点
问题描述
我有一个 '/' 的路由,但它提供公共 html 索引文件,我尝试将我的 api 的根目录更改为 /api/** 但它给了我一个 404 错误。当我在本地运行它时它运行良好,但是当我部署它时,我遇到了只有 index.html 文件的问题。这是firebase.json文件
{
"hosting": {
"public": "public",
"rewrites":[
{
"source":"/api/**",
"functions":"app"
}
],
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
}
}
和index.js文件夹
const functions = require('firebase-functions')
const express = require('express')
\\.
\\.
\\requiring routes and middleware
app.use(helmet())
app.use(express.json())
app.use(cookieParser())
app.use(cors({
origin:"*",
credentials:true
}))
app.get('/',(req,res)=>{
res.status(200).send("works");
})
app.use(locationActions)
app.use(filterActions)
app.use('/auth',userAuth)
app.use('/adm',AdminRoutes)
app.use('/prod',prodActions)
app.use('/user',userActions)
exports.app = functions.https.onRequest(app);
解决方案
.send() 似乎不能很好地与 firebase 一起工作,我只需要说一些类似 response.json({message}) 的话,这实际上会发送响应。猫鼬连接也被禁止,因为我使用的是免费帐户,因此 Firebase 之外的任何连接都被拒绝。
推荐阅读
- unit-testing - gmock 如何指定不应该调用其他模拟方法?
- bootstrap-4 - 如何让 Bootstrap-4 与 php & html 一起工作?
- html - Bootstrap4 和 Angular:text-right 不适用于列
- java - 在 android studio 中接收通知
- c# - 来自脚手架“dotnet new mvc”的 C# Response.Write 错误
- java - 使用 grizzly HttpServer 运行简单的休息服务时不支持的媒体类型异常
- alexa - Alexa 技能触发器跟进意图
- python - 在 Ubuntu 上安装 Tensorflow GPU / CUDA
- javascript - 在 React 中使用 action reducer 链接 promise
- java - 如何在docker容器中运行的java maven项目中引用资源文件