我在使用具有Firebase功能的Express中间件时遇到问题。在这个example中,一个函数被挂钩到app()实例,如下所示:
app.get('*', (req, res) => {
res.send(`Hello ${req.user.name}`);
});
exports.authorizedHello = functions.https.onRequest(app);
如何使用快速中间件来实现多种功能?
这是我尝试解决它的方法之一,但调用端点会返回404:
app.get('/authorizedHello', (request, response) => {
response.send(`Hello ${request.user.name}`);
})
app.get('/authorizedBye', (request, response) => {
response.send(`Bye ${request.user.name}`);
})
exports.authorizedHello = functions.https.onRequest(app);
exports.authorizedBye = functions.https.onRequest(app);
我确定我做错了。你能指出我正确的方向吗?
答案 0 :(得分:3)
请考虑云功能的基本路径使用您的导出名称,因此在这种情况下,您的有效网址将为:
https://us-central1-<YOURAPP>.cloudfunctions.net/authorizedHello/authorizedHello
https://us-central1-<YOURAPP>.cloudfunctions.net/authorizedHello/authorizedBye
https://us-central1-<YOURAPP>.cloudfunctions.net/authorizedBye/authorizedHello
https://us-central1-<YOURAPP>.cloudfunctions.net/authorizedBye/authorizedBye
这就是示例使用get('*', ...)
的原因。执行deploy命令后,您应该会看到显示的URL。
您有四个网址,因为您导出了两次相同的Express应用。
答案 1 :(得分:1)
$phones = "Samsung Galaxy S8~LG G6~iPhone 7 Plus~ Motorola Z2";
$phones = str_replace("Galaxy S", '<span class="galaxy">galaxy</span>', $phones);
$value = preg_replace('/(\d+.*?)(~)/', '($1)$2', $phones . "~");
$value = "<li>". str_replace("~", ",</li><li>", substr($value,0,-1)) . "</li>";
Echo $value;
&#13;
然后你可以访问这样链接。 https://us-central1-[YOURAPP].cloudfunctions.net/main/ https://us-central1-[YOURAPP].cloudfunctions.net/main/login
很抱歉打扰你的问题。但我不得不在google上找到我的问题,比如使用&#34;如何使用模板引擎来google云功能&#34;我从来没有得到正确的答案。
我很高兴,因为您的问题中的示例代码。这让我有所改进。谢谢 。 抱歉我的英文不好:)