【发布时间】:2021-12-19 14:43:35
【问题描述】:
在使用 app.listen(8080) 时,不使用 Firebase here 可以解决此错误,但是在使用 exports.app = functions.https.onRequest(app) 提供云功能时这不起作用
这是一个简单的复制代码
const app = express();
app.get('**', (req, res) => res.send('working'));
app.use((err, req, res, next) => res.redirect('/404'));
exports.app = functions.https.onRequest(app) // doesnt work
// app.listen(5000) // works
如何在 firebase 函数中发现这个错误?我希望重定向工作。
firebase 测试:firebase serve --only functions
快递服务:node index.js
要测试的网址:http://localhost:5000/%CO
请注意,附加的%CO 是无法通过express 解码的。使用 express 方法而不是 firebase 函数方法时会捕获此错误。
由于这似乎是一个错误,我还创建了一个issue here on github,以防我找不到解决方法。
【问题讨论】:
-
我检查了 firebase 日志,发现了错误发生的原因,但我还不知道该怎么做。
AppData\Roaming\npm\node_modules\firebase-tools\node_modules\express\lib\router\layer.js:172:12)在 express 收到请求之前捕获decodeURIComponent(val)错误。我怎样才能覆盖它?
标签: node.js firebase express google-cloud-functions