Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有Firebase云功能的Express routes和中间件 问题:_Express_Routing_Google Cloud Functions_Middleware - Fatal编程技术网

具有Firebase云功能的Express routes和中间件 问题:

具有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

期望 使用我设置的任意一个URL,我希望在控制台日志中看到,
“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中间件。我还没有掌握Express
app.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!");
});