Мене цікавить, чи є спосіб розмістити доступні дані користувачів у сеансі у відповідь на маршрути за замовчуванням. Наприклад, написати щось подібне:
app.get("/someRandomPath",PutUserData,function(req,res,next)
{
res.render("myView",{title:"my page title"})
}
function PutUserData(req,res,next)
{
if(auth)
{
res.send({user:session.user}
next()
}
else next()
}
або ще краще зробити щось на рівні додатків, таких як app.use(...)
? Причиною, для якої я хочу це зробити, є те, що я хочу уникати перевірки, чи користувач є автономним чи ні в кожному маршруті, і надавати перегляди з різними даними. Я вдячний за вашу допомогу.
Відповіді:
1 для відповіді № 1Перевірити res.locals
з документації Експрес. Це може допомогти вам.
http://expressjs.com/en/api.html#res.locals
Також див ця відповідь допомогти зрозуміти, як працює res.locals.
app.use(function(req, res, next){
res.locals.user = session.user;
next();
});
фронтальний (нефритовий шаблон, але ви можете використовувати будь-який двигун шаблону)
extends layout
block content
p user was set to #{user}