Ich habe eine App, die JSON-Anfragen aufnimmt. Diese JSON-Anfragen können bis zu 200k betragen.express bodyParser blockierende Ereignisschleife
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();
});
und was auf der Konsole gedruckt wird ist
start2: 591ms
bin ich richtig in der Annahme, die json Körper des Antrags Parsen der Ereignisschleife für 591 ms blockiert?
Danke für die Antwort. Ich habe hier https://github.com/expressjs/body-parser/blob/master/lib/types/json.js#L91 durchgeschaut und wäre es das read() wo sich die meisten der 591ms befinden in einer nicht-Event-Loop-Blocking-Art stattfinden? –
Ja, das wäre meine Vermutung. Sie können die Dateien in './Node_modules/body-parser' Ihres Projekts bearbeiten, um einige zusätzliche Timer hinzuzufügen und zu sehen, ob das tatsächlich korrekt ist :-) – robertklep
Das sieht gut aus. Irgendwelche Gedanken, warum, für ähnliche Anfragen, manchmal dauert es ein paar ms und andere, 500+ ms? Ich sehe derzeit keine anderen Anfragen. –