首页 > 解决方案 > 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);

标签: node.jsfirebaseexpressgoogle-cloud-functionsfirebase-hosting

解决方案


.send() 似乎不能很好地与 firebase 一起工作,我只需要说一些类似 response.json({message}) 的话,这实际上会发送响应。猫鼬连接也被禁止,因为我使用的是免费帐户,因此 Firebase 之外的任何连接都被拒绝。


推荐阅读