我有一個應用程序,它接受json請求。這些json請求可以高達20萬。express bodyParser阻止事件循環
app.use(function (req, res, next) {
console.time("start2")
next();
});
app.use(bodyParser.json({ limit: '5mb' }));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cors());
app.enable('trust proxy');
app.use(function (req, res, next) {
console.timeEnd("start2")
next();
});
,什麼被打印到控制檯是
start2: 591ms
我是正確的假設解析請求的JSON的物體阻擋了591毫秒的事件循環?
感謝您的回覆。我通過這裏看看https://github.com/expressjs/body-parser/blob/master/lib/types/json.js#L91,它會是read()這是591ms的大部分是發生在非事件循環阻塞方式? –
是的,這是我的猜測。您可以編輯項目的'。/ node_modules/body-parser'中的文件以添加一些額外的定時器,看看它是否真的正確:-) – robertklep
看起來不錯。任何想法,爲什麼,類似的要求,有時需要幾毫秒和其他人,500 +毫秒?目前我還沒有看到任何其他請求發生。 –