Є кілька подібних запитань, але моє запитання полягає в тому, що якщо я хочу поширити проміжні результати, які я отримую з різними проміжними програмами маршрутизації, який найкращий спосіб це зробити?
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. Крім того, схоже, що і для запиту, і для відповіді властивості локалів ініціалізовані до порожнього об’єкта на початку запиту.
Також можна встановити властивості res.mydata або req.mydata?
Теоретично app.locals також може використовуватися для передачі цих даних через різне проміжне програмне забезпечення, оскільки воно зберігатиметься серед проміжних програм, але це суперечить звичайному використанню app.locals. Він використовується більше для конкретних даних програми. Також необхідно буде очистити ці дані в кінці циклу запит-відповідь, щоб ті самі змінні могли бути використані для наступного запиту.
Який оптимальний та стандартний спосіб розповсюдження проміжних результатів за допомогою проміжного програмного забезпечення?