【问题标题】:Connect Firebase with express app.js or routers将 Firebase 与 express app.js 或路由器连接
【发布时间】:2019-12-23 10:51:09
【问题描述】:

我想将我的 app.js 文件与 index.js 文件或 firebase 连接起来,因为我的所有路由和所需文件都存储在 app.js 上。

有什么办法可以做到吗?

我的代码看起来像这样

index.js(火力基地)

var app = require('../app');
exports.app = functions.https.onRequest(app);

app.js

var app = express();
var test = require('./routes/test')
app.use('/test', test)

并且路由器测试将包含所有必需的代码。


文件夹结构类似于

my_project/functions/index.js
my_project/app.js
my_project/routes/test.js

我能够安装 firebase (firebase init) 并从 Firebase 的 index.js 文件中点击节点 api。但我想借助 Firebase 的 index.js 从 app.js 调用我的节点 API。

【问题讨论】:

    标签: node.js firebase express google-cloud-functions


    【解决方案1】:

    在您的情况下,您的路线已经在一个 ./routes 文件夹中,这很棒。如果您正在寻找有条理的简单性,我建议将您的 app.js 文件移动到您的路线文件夹中(我总是将此文件称为 index.js 但这取决于您)。在这种情况下,您的路线文件夹应如下所示:

    ./routes/
    |- index.js
    |
    |- route1.js
    |- route2.js
    |- route3.js
    

    index.js 的唯一目的是为您的每条路线调用app.use()

    // ./routes/index.js
    
    module.exports = app => {
      app.use('/test', require('./test'));
      app.use('/users', require('./users'))
      app.use('/bookings', require('./bookings'));
    }
    

    如您所见,./routes/index.js 的唯一目的是导出一个函数,该函数接收一个 app 对象,该对象将为其每个路由调用 app.use()

    随后,您可以像这样编写您的 firebase index.js 并调用 ./routes/index.js 函数:

    const express = require('express');
    const app = express();
    
    require('./routes')(app);
    
    exports.app = functions.https.onRequest(app);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-09
      • 2017-10-07
      • 1970-01-01
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-20
      相关资源
      最近更新 更多