Je suis très confus de ce qui se passe ici. J'essaye de placer une image de profil par défaut de res.locals pour un utilisateur s'ils n'en ont pas actuellement. Voici mon code:Express.js - La définition de res.locals modifie l'objet req
// Make user object available in templates.
app.use(function(req, res, next) {
res.locals.user = req.user;
if (req.user && req.user.profile) {
console.log('Request Picture: ', req.user.profile);
res.locals.user.profile.picture = req.user.profile.picture || defaults.imgs.profile;
console.log('Request Picture After Locals: ', req.user.profile);
}
next();
});
// Console Results
Request Picture: { picture: '',
website: '',
location: '',
gender: '',
name: 'picture' }
Request Picture After Locals: { picture: '/img/profile-placeholder.png',
website: '',
location: '',
gender: '',
name: 'picture' }
Je veux être capable d'écrire JADE sans avoir à manipuler quelque chose comme ceci: img(src=user.profile.picture || defaults.profile.picture)
. Donc, le code ci-dessus fonctionne très bien dans toutes les vues JADE.
Mais, j'ai besoin de vérifier le req.user.profile.picture
quelque part d'autre afin de changer l'image.
if (!req.user.profile.picture) {do stuff}
Comme vous pouvez le voir ci-dessus la req
a été modifiée. Réglage res.locals
ne devrait pas changer l'objet req
... correct!? Ou est-ce que je manque quelque chose?
Merci pour toute aide!
Oh wow ... Je ne peux pas croire que je manqué ça. Ici, je pense que c'est une chose Express quand c'est une simple chose JS. C'est un "gotcha" dans JS. Merci pour l'aide! Réponse acceptée. – Beau