Using RES-LOCALS
res.locals
TO SET VARIABLES ACCESSIBLE IN TEMPLATES RENDERED WITH res.render
WE USE RES.LOCALS TO SEND FLASH MESSAGES FOR BETTER EFFICIENCY.
THE VARIABLES USED IN RES.RENDER CAN BE SAVED IN RES.LOCALS.
app.get("/register", (req, res) => {
let { name = "anonymous" } = req.query;
req.session.name = name;
if (name === "anonymous") {
req.flash("error", "registration unsuccessful");
} else {
req.flash("success", "registration successful");
}
res.redirect("/hello");
});
app.get("/hello", (req, res) => {
res.locals.successMsg = req.flash("success");
res.locals.errorMsg = req.flash("error");
res.render("page.ejs", {
name: req.session.name,
});
});
PAGE.EJS
<body>
<%= successMsg %>
<%= errorMsg %>
<h2>Hello!<%= name %></h2>
</body>
THEY CAN ALSO BE USED IN MIDDLEWARES.
app.use((req, res, next) => {
res.locals.successMsg = req.flash("success");
res.locals.errorMsg = req.flash("error");
next();
});




Comments
Post a Comment