我试图在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支持。