У меня есть приложение, которое принимает запросы json. эти запросы json могут быть до 200k.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+ мс? В настоящее время я не вижу никаких других запросов. –