Jest kilka podobnych pytań, ale moje pytanie brzmi: jeśli chcę rozpowszechniać wyniki pośrednie, które otrzymuję za pomocą różnych programów pośredniczących do routingu, jaki jest najlepszy sposób, aby to zrobić?
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();
}
// ...
Myślę, że mogę uzyskać taką samą propagację danych przez różne oprogramowanie pośredniczące, używając req .locals. Wygląda również na to, że zarówno obiekty żądania, jak i odpowiedzi mają właściwości lokalne zainicjowane w pustym obiekcie na początku żądania.
Można też ustawić właściwości res.mydata lub req.mydata?
Teoretycznie app.locals może być również używany do przekazywania tych danych przez różne oprogramowanie pośredniczące, ponieważ będzie istnieć w oprogramowaniu pośrednim, ale byłoby to sprzeczne z konwencjonalnym użyciem app.locals. Jest używany bardziej do danych specyficznych dla aplikacji. Konieczne będzie również wyczyszczenie tych danych na końcu cyklu żądanie-odpowiedź, aby te same zmienne mogły zostać użyte w następnym żądaniu.
Jaki jest optymalny i standardowy sposób rozpowszechniania wyników pośrednich za pomocą oprogramowania pośredniego?