使用firebase功能的Express应用程序

时间:2018-05-22 02:16:11

标签: node.js firebase google-cloud-functions firebase-hosting firebase-cli

我试图将Express应用程序运行到firebase中,我正在按照此官方视频的步骤进行操作:

Node.js apps on Firebase hosting crash course

My Express应用实际上是在此网址上运行

  

http://localhost:5001/my-app/us-central1/app/test

但是在视频中,演示文稿正在这个网址上运行

  

http://localhost:5000/test

所以,我真的对此感到困惑,我已经完成了教程显示的所有内容

这是我在functions / index.js上的代码

const functions = require('firebase-functions');

const express = require('express')
const app = express()

app.get('/test', (req, res) => {
    res.send(`Well if i'm reading this the app is working`)
})


exports.app = functions.https.onRequest(app)

这是firebase.json

{
  "hosting": {
    "public": "public",
    "rewrite":[{
      "source": "/test",
      "function": "app"
    }],
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  }
}

我做错了什么?如果我进入localhost:5000我只是得到公共静态index.html,我只想自己控制应用程序。

我希望你能给我一些帮助,以便记录下来,谢谢!

1 个答案:

答案 0 :(得分:2)

此处的问题是,Firebase Hosting将使用任何重写提供与 之前的任何路径匹配的静态内容。如果要使用云功能控制路径,则必须确保没有与路径匹配的静态内容。

对于单页应用程序,删除index.html至关重要,因为它始终作为静态内容提供。