Creé una página de blog con un registro e inicio de sesión. Así que usé el req.locals.<name>
Con el método GET.
Código en server.js
app.get('*',(req,res, next) => { res.locals.user = req.user || null; next(); }) Y usé la variable de user en la barra de navegación de una página de pug como: -
nav.navbar.navbar-expand-lg.navbar-light.bg-light .container a.navbar-brand.text-center.me-2(href='/') IA INFO button.navbar-toggler(type='button' data-bs-toggle='collapse' data-bs-target='#navbarSupportedContent' aria-controls='navbarSupportedContent' aria-expanded='false' aria-label='Toggle navigation') span.navbar-toggler-icon #navbarSupportedContent.collapse.navbar-collapse.justify-content-end ul.nav.nav-tabs li.nav-item a.nav-link(aria-current='page' href='/') Home li.nav-item a.nav-link(href='/blogs') Blogs if user li.nav-item a.nav-link(href='/blogs/add/new-blog') New Blog li.nav-item a.nav-link(href='/blogs/admin/sign') Sign li.nav-item a.nav-link(href='/logout') Logout Pero cuando pruebo este método, realmente no funciona....
Después de que alguien inicia sesión, se supone que funciona, pero luego me muestra un error de que el usuario no está definido o simplemente no funciona...
En lugar de configurar el usuario como nulo, intente configurar un booleano dentro del objeto del usuario, más como:
app.get('*',(req,res, next) => { res.locals.user = req.user ? {...req.user,...{isSignedIn : true} : {isSignedIn : false}; //spread operator has shortcomings, please use it with care next(); })y luego en el archivo pug:
nav.navbar.navbar-expand-lg.navbar-light.bg-light .container a.navbar-brand.text-center.me-2(href='/') IA INFO button.navbar-toggler(type='button' data-bs-toggle='collapse' data-bs-target='#navbarSupportedContent' aria-controls='navbarSupportedContent' aria-expanded='false' aria-label='Toggle navigation') span.navbar-toggler-icon #navbarSupportedContent.collapse.navbar-collapse.justify-content-end ul.nav.nav-tabs li.nav-item a.nav-link(aria-current='page' href='/') Home li.nav-item a.nav-link(href='/blogs') Blogs if user.isSignedIn //check for the boolean li.nav-item a.nav-link(href='/blogs/add/new-blog') New Blog li.nav-item a.nav-link(href='/blogs/admin/sign') Sign li.nav-item a.nav-link(href='/logout') Logout