任何想法,我想添加一個快速中間件來檢查 cookie (theme=dark),如果存在添加類......知道中間件在一個單獨的檔案中。我知道如何創建中間件但如何在中間件和 ejs 視圖之間進行通信?
uj5u.com熱心網友回復:
視圖將在幾個地方查找資料。一個這樣的地方是res.locals(請參閱此處的檔案)。因此,由于每個中間件都傳遞了res物件,您可以res.locals在中間件中設定一些資料,這些資料將自動傳遞給模板。
例如:
app.use((res, req, next) => {
res.locals.appName = "My App";
next();
});
然后,您的模板可以參考該appName變數:
<%=appName%>
否則,您可以通過在res或req物件上創建自己的屬性將資料從中間件傳遞到呈現模板的實際路由,并且路由處理程式可以從那里獲取資料并將其作為資料引數傳遞給res.render(templateName, dataObj).
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/334827.html
