Firebase功能:koa.js服务器如何部署

时间:2018-01-31 22:07:13

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

我已经有一个使用koa服务器编写的构建版本在MERN堆栈中编写的应用程序。我用malloc()命令运行的主节点文件启动整个应用程序,看起来像this

在每个教程中,我都看到我需要在编码开始时添加while等(或者至少要假设这样做)。 我怎样才能在firebase上托管我的应用程序,就像我在heroku上一样 - 整个服务器端?

4 个答案:

答案 0 :(得分:5)

实际上,可以使用firebase函数托管Koa应用,我经过大量的Google搜索和分析后才知道。

这是my project的一段代码,现在由firebase函数托管:

const Koa = require('koa');
const app = new Koa();

// ... routes code here ...

const server = app.listen(config.port, () => {
  console.log(`HITMers-server is running on port ${config.port}`);
});

// This is just for running Koa and testing on local machine
module.exports = server;

exports.api = functions.https.onRequest(app.callback());

有关更多信息,您可以看到the docstutorial video

顺便说一下,这里是another example,将Koa部署到now.sh版本2。

答案 1 :(得分:1)

您可以使用firebase托管运行快速应用程序,以通过firebase功能提供动态内容。但是,您目前无法使用Koa.js。 functions.https.onRequest要求您传递HTTP请求处理程序或从express()返回的快速应用程序。

以下是Firebase中有关从功能提供动态内容的相关文章。 https://firebase.google.com/docs/hosting/functions

以下是Firebase使用express的视频教程。 https://www.youtube.com/watch?v=LOeioOKUKI8

答案 2 :(得分:1)

您实际上可以完全跳过监听呼叫,并使用app.callback()。 这似乎比在从未真正受到攻击的随机端口上进行监听更有意义。

const functions = require('firebase-functions');
const app = new Koa();
... // set up your koa app however you normally would
app.use(router.routes());
module.exports.api = functions.https.onRequest(app.callback());

答案 3 :(得分:-1)

您无法在云端功能上部署和运行任意节点应用。您必须使用产品定义的不同类型的触发器。

请参阅Cloud Functions for Firebase main page查看列表。

  
      
  • Cloud Firestore触发器
  •   
  • 实时数据库触发器
  •   
  • Firebase身份验证触发器
  •   
  • Google Analytics for Firebase触发器
  •   
  • Crashlytics触发器
  •   
  • 云存储触发器
  •   
  • 云发布/子触发器
  •   
  • HTTP触发器
  •