Vorrei creare una specie di prima del filtro che mi permette di rendere l'utente corrente disponibile in tutte le azioni. L'approccio followint funziona bene e non ho nemmeno bisogno di dichiarare una variabile globale:Come faccio a passare le variabili dal middleware di Connect in app.get-action?
app.use(function(req, res, next){
if(req.session.user_id){
/* Get user from database
and share it in a variable
that can be accessed frooom ...
*/
User.find({ /* ... */ }, function(err, users){
if(users.length == 1){
req.current_user = users[0];
}
next();
});
}
else{
next();
}
});
app.get('/', function(req, res){
// ... here!!
console.log(req.current_user);
res.render('index', {
current_user: req.current_user,
});
});
Ma io sono ancora incerti se va bene per manipolare req
, perché non so se è giusto cambiare qualcosa non è di mia proprietà? C'è un modo migliore per farlo?
E 'solo io e il mio compagno di squadra che avrà bisogno di lavorare con lui, quindi in questo caso, non v'è un elevato potenziale per accidentalmente utilizzando lo stesso nome della proprietà in due contesti diversi. Tuttavia, il tuo suggerimento di rendere il nome modificabile è molto utile. Grazie anche per la tua risposta! – YMMD