Firebase函数解析请求体之前,我可以在Express中处理它



我试图在Firebase函数中处理无效请求,因此使用无效的JSON进行post请求,目的是在express中处理它。但我得到400错误'SyntaxError:意外的令牌a在JSON中的位置20'在到达表示层之前,最糟糕的是函数运行60秒,直到遇到超时错误。

函数

import * as functions from 'firebase-functions';
import * as express from 'express';
import * as admin from 'firebase-admin';
admin.initializeApp();

const app = express();
app.use((err: any, req: any, res: any, next: any) => {
res.json({ error: 'invalid request' });
next(err);
});
app.post('/test', (req: any, res: any) => {
res.json({ error: 'invalid request' });
res.end();
return;
});

const server = functions.runWith({ maxInstances: 100 }).https.onRequest(app);
export { server as api };

无效的json,

{
"es":"adfasdf"asdf
}

我怀疑这与https://firebase.google.com/docs/functions/http-events#read_values_from_the_request at "有关;这种解析是由以下主体解析器完成的:">

Firebase函数构建在functions-framework-nodejs包之上(或者至少是相同代码的内部变体)。

在该包中,您提到的主体解析器被注入。正如您正确猜测的那样,这些确实是在代码有机会执行之前添加的。

由于错误是Firebase的内部操作,您需要直接联系Firebase支持。

相关内容

  • 没有找到相关文章