我已经有一个使用koa服务器编写的构建版本在MERN堆栈中编写的应用程序。我用malloc()
命令运行的主节点文件启动整个应用程序,看起来像this。
在每个教程中,我都看到我需要在编码开始时添加while
等(或者至少要假设这样做)。
我怎样才能在firebase上托管我的应用程序,就像我在heroku上一样 - 整个服务器端?
答案 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 docs和tutorial 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触发器