【问题标题】:Creating a Node.js REST API using Firebase Cloud Functions, without Express?使用 Firebase Cloud Functions 创建 Node.js REST API,而不使用 Express?
【发布时间】:2020-11-04 15:26:33
【问题描述】:

我正在努力通过 Firebase Cloud Functions 创建一个无服务器 REST API,这似乎运行良好,但 examplesdocumentation 似乎都使用了一个整体解决方案,因为它们使用 Express 框架并基本上映射根向 Express 应用发出 http 请求,然后让它处理路由。我知道这是因为 Firebase 托管平台不具备处理 http 动词的能力。

我的期望是,无服务器/FaaS 方法将为每个端点提供一个功能,以便将来轻松更新,因为无需更新整个应用程序,只需更新单个服务 - 即更实用的方法。

我在这里缺少什么?为什么要使用单个函数来包含快速应用程序?这不会破坏无服务器/云功能方法的目的吗?还有其他方法吗?

【问题讨论】:

  • 你当然可以为每个端点做一个函数,不需要express。我认为这从文档中很清楚。您只需要使用类似 Express 的请求和响应对象,无需创建 express 应用程序。 firebase.google.com/docs/functions/http-events
  • 感谢@DougStevenson——也许是我的错误——我读到“HTTP 函数的事件处理程序侦听 onRequest() 事件,它支持由 Express Web 框架管理的路由器和应用程序。”表示它支持 Express 管理的路由器和应用程序。是否有任何示例应用程序采用了每个端点的功能方法(即没有 Express)?
  • 我链接到的文档显示了该示例。你只需在onRequest中填写代码即可。无需路由任何东西。
  • 好的,我会做更多的挖掘 - 无法立即看到如何区分同一个 url 上的 POST 和 GET(例如),但我会假设它在某个地方 :-)
  • 我现在看到它在 req.method 中,所以应该可以使用它 - 再次感谢。

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


【解决方案1】:

documentation 展示了如何在没有 Express 应用、路由器或中间件的帮助下创建端点:

exports.date = functions.https.onRequest((req, res) => {
  // ...
});

您所要做的就是安排使用res.send(...) 或类似名称发送回复。

【讨论】:

    猜你喜欢
    • 2019-12-30
    • 2018-09-30
    • 2020-03-15
    • 2018-01-14
    • 1970-01-01
    • 2020-09-30
    • 2018-01-12
    • 2018-12-14
    • 2021-07-30
    相关资源
    最近更新 更多