req.locals vs. res.locals vs. res.data vs. req.data vs. app.locals in Express Middleware

Es werden einige ähnliche Fragen gestellt, aber meine Frage lautet: Wenn ich Zwischenergebnisse verbreiten möchte, die ich mit der verschiedenen Routing-Middleware erhalte, wie kann ich das am besten tun?

app.use(f1); app.use(f2); app.use(f3);

function f1(req,res,next) {
  //some database queries are executed and I get results, say x1
  res.locals.dbResults = {...};
  next();
}

function f2(req,res,next) {
  // more processing based upon req.locals.dbResults 
  res.locals.moreResults = {....};
  next();
}
// ...

Ich denke, dass ich mit @ die gleiche Datenausbreitung durch die verschiedenen Middleware erhalten kan req .locals. Es scheint auch, dass sowohl für das Anforderungs- als auch für das Antwortobjekt die lokalen Eigenschaften zu Beginn der Anforderung auf ein leeres Objekt initialisiert wurden.

Auch kann man res.mydata oder req.mydata Eigenschaften auch einstellen?

heoretisch kann app.locals auch zum Weiterleiten dieser Daten durch die verschiedenen Middlewares verwendet werden, da sie auf allen Middlewares bestehen bleiben, was jedoch der herkömmlichen Verwendung von app.locals zuwiderläuft. Es wird eher für anwendungsspezifische Daten verwendet. Es ist auch erforderlich, diese Daten am Ende des Anforderungs-Antwort-Zyklus zu löschen, damit für die nächste Anforderung dieselben Variablen verwendet werden können.

Was ist die optimale und standardmäßige Methode, um Zwischenergebnisse über Middleware zu verbreiten?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage