/ / розміщення даних користувача у всіх маршрутах, якщо аутентифікований Express / Node JS - javascript, node.js, express, маршрути

введення даних користувача у всіх маршрутах, якщо аутентифікація Express / Node JS - javascript, node.js, express, routes

Мене цікавить, чи є спосіб розмістити доступні дані користувачів у сеансі у відповідь на маршрути за замовчуванням. Наприклад, написати щось подібне:

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}