我試圖弄清楚這段代碼的作用:
const app = express();
app.use((req, res, next) => {
res.locals.path = req.path;
next();
});
uj5u.com熱心網友回復:
res.locals通常用于將變數從中間件呈現到模板引擎,用于res.render()在后續請求處理程式(稍后在請求處理程式鏈中)中呈現頁面。你可以在這里閱讀檔案。
因此,這個特定的中間件req.path可用于模板引擎(通過將該值放入res.locals.path以便它可以用于渲染頁面path(不確定模板想要對路徑做什么 - 這取決于它)。
請注意,呼叫的實際路由res.render()可以將資料作為引數直接傳遞給模板引擎res.render(),但這不能由中間件完成,因為中間件本身沒有呼叫,因此它的替代方法是將res.render()資料放入res.locals模板引擎可以從那里獲取它。
res.locals開始每個請求都是空的,因此它不包含任何內容,直到您的中間件或請求處理程式將某些內容放入其中以呈現該特定請求的頁面。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/466378.html
