如何将nodeJS项目托管到firebase?

Posted

技术标签:

【中文标题】如何将nodeJS项目托管到firebase?【英文标题】:How to host nodeJS project to firebase? 【发布时间】:2018-01-14 04:28:22 【问题描述】:

我正在为项目使用 node、express 和更多其他依赖项。我想知道如何在 firebase 上托管这个项目。我的项目将有控制器、视图和任何其他文件夹以使项目成为可能。它已经有像 pug/handlebars 这样的视图引擎。

在线教程仅显示如何在公用文件夹中使用单个 index.html 托管 firebase。我想如何用所有其他文件夹来托管我的项目?我知道如何在 nodeJS 中使用 firebase,但是如何在 firebase 上托管项目? firebase 将如何访问服务器文件(app/index.js)?我应该把所有这些文件夹放在哪里?

希望我没有要求太多。如果我的问题不清楚,请告诉我,以便我做出澄清。

【问题讨论】:

【参考方案1】:

您可以通过 firebase 云功能来做到这一点。 部署身份验证由 Firebase CLI 处理,因此启动并运行一个 hello world 从字面上看是:

firebase init functions
firebase deploy

一个简单的hello world函数

functions.https.onRequest((request, response) => 
    response.send(“Hello from Firebase!”);
);

注意:您可以将 express 与 firebase 功能一起使用。

更多请点击文档链接:https://firebase.google.com/docs/functions

【讨论】:

【参考方案2】:

你很幸运。 Firebase 本周刚刚发布了video that walks step-by-step through setting up an Node.js/Express app on Firebase Hosting。

这只有在 Cloud Functions 与 Firebase 托管的集成之后才有可能,该产品在 2017 年 I/O 上发布。大多数教程很可能是在那之前,当时无法在 Firebase 托管上运行服务器端代码.

【讨论】:

不错!我一定会检查链接。 嗨,假设我的 nodejs 应用程序在本地连接到 mongo db,这将如何工作 我应该将所有模块文件移动到functions文件夹下吗? 在 Cloud Functions 中运行的服务器端代码所使用的节点模块确实需要位于 functions 文件夹下的 node_modules 目录中。前端代码中使用的节点模块需要位于捆绑器用于前端的node_modules 目录中。

以上是关于如何将nodeJS项目托管到firebase?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Firebase 身份验证和托管将登录用户重定向到子域?

如何通过 android 将文件保存到 Firebase 托管文件夹位置以获取图像?

如何使用nodejs在对话流履行中将数据附加到firebase?

Firebase 托管 + 使用 webpack 进行反应

使用自己的服务器 node.js 托管 Firebase

如何在 firebase 托管的 webapp 中获取 firebase 函数 URL?