Есть несколько похожих вопросов, но мой вопрос заключается в том, что если я хочу распространять промежуточные результаты, которые я получаю по разному промежуточному программному обеспечению маршрутизации, что это лучший способ сделать это?
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();
} ...
Я думаю, что я могу получить такое же распространение данных через другое промежуточное ПО, используя req.locals. Кроме того, похоже, что объекты запроса и ответа имеют свойства locals, инициализированные пустым объектом в начале запроса.
Кроме того, можно также задать свойства res.mydata или req.mydata?
В теории, app.locals также может использоваться для передачи этих данных через различное промежуточное программное обеспечение, поскольку оно будет сохраняться у посредников, но это противоречило бы традиционному использованию app.locals. Он больше используется для конкретных приложений. Также необходимо будет очистить эти данные в конце цикла запроса-ответа, чтобы для следующего запроса могли использоваться одни и те же переменные.
Каков оптимальный и стандартный способ распространения промежуточных результатов через промежуточное программное обеспечение?