具有Firebase云功能的Express routes和中间件 问题:
如何在Firebase云函数中使用Express 期望 使用我设置的任意一个URL,我希望在控制台日志中看到,具有Firebase云功能的Express routes和中间件 问题:,express,routing,google-cloud-functions,middleware,Express,Routing,Google Cloud Functions,Middleware,如何在Firebase云函数中使用Express 期望 使用我设置的任意一个URL,我希望在控制台日志中看到,“Firebase上Express的Hello!” 为什么??我的理解是,“*”意味着所有请求的路线都应该响应。发送(“Firebase上的快递你好!”) 问题 当我使用时,https://us-central1-myapp.cloudfunctions.net/helloWorld我从Firebase获得了预期的你好。我是否也应该看到“Firebase上Express的您好!” 当我使
“Firebase上Express的Hello!”
为什么??我的理解是,“*”
意味着所有请求的路线都应该响应。发送(“Firebase上的快递你好!”)代码>
问题
当我使用时,https://us-central1-myapp.cloudfunctions.net/helloWorld
我从Firebase获得了预期的你好日志中的代码>。我是否也应该看到“Firebase上Express的您好!”
当我使用时,https://us-central1-myapp.cloudfunctions.net/api
,我得到一个404错误
URL,https://us-central1-myapp.cloudfunctions.net/api
是问题所在。请在下面的答案中查看原因
代码
tl;博士
我希望实现的一个示例是,但是没有一个代码示例对我有效。我得到一个404错误
Express文档显示了一个类似的HelloWorld示例,但我不明白Firebase是如何取代app.listen(3000,()=>console.log('example app listening on port 3000!'))
在我的示例代码中,cors
是否正常工作?虽然我得到了预期的响应和日志,但Chrome控制台发出警告:Cross-Origin Read Blocking(CORB)blocked Cross-Origin responsehttps://appengine.google.com/_ah/lo....
我有一个Slack应用程序正在访问这些URL(我也用chrome访问了它们)。最后,我想在我的谷歌云功能中使用Botkit中间件。我还没有掌握Expressapp.use()和app.get()的正确设置
我犯了一个简单的错误,将/api
视为一个函数,而它实际上是路径的一部分
通过将此URL与后面的/
https://us-central1-myapp.cloudfunctions.net/api/
我现在进入了快速路线和功能。我看到了firebase.json
与托管
参数的使用。我的示例项目没有使用托管,我认为不需要。这方面的例子很相似,但差别很大。
app.get("*", (_request, response) => {
response.send("Hello from Express on Firebase!");
});
// Express
import express = require("express");
const app = express();
const cors = require("cors")({
origin: "*"
});
app.use("*", cors);
// Firebase Functions SDK
import functions = require("firebase-functions");
app.get("*", (_request, response) => {
response.send("Hello from Express on Firebase!");
});
exports.api = functions.https.onRequest(app);
exports.helloWorld = functions.https.onRequest((_request, response) => {
response.send("Hello from Firebase!");
});