express 3.0 comment utiliser app.locals.use et res.locals.use

Je suis sur express3.0rc2. Comment utiliser app.locals.use ( app.locals.use -t-il toujours) et res.locals.use

J’ai vu cette https://github.com/visionmedia/express/issues/1131 mais app.locals.use lève une erreur. Je suppose qu’une fois que j’ai mis la fonction dans app.locals.use, je peux l’utiliser dans les routes.

Je pensais append

 app.locals.use(myMiddleware(req,res,next){res.locals.uname = 'fresh'; next();}) 

puis dans n’importe quelle route appeler ce middleware

Merci

J’utilise Express 3.0 et cela fonctionne pour moi:

 app.use(function(req, res, next) { res.locals.myVar = 'myVal'; res.locals.myOtherVar = 'myOtherVal'; next(); }); 

J’ai ensuite access à myVal et myOtherVal dans mes modèles (ou directement via res.locals ).

Si je vous ai bien compris, vous pouvez procéder comme suit:

 app.configure(function(){ // default express config app.use(function (req, res, next) { req.custom = "some content"; next(); }) app.use(app.router); }); app.get("/", function(req, res) { res.send(req.custom) }); 

Vous pouvez maintenant utiliser la variable req.custom dans chaque route. Assurez-vous de mettre la fonction app.use avant le routeur!

Modifier:

ok next try 🙂 vous pouvez soit utiliser votre middleware et le spécifier dans les routes que vous souhaitez:

 function myMiddleware(req, res, next) { res.locals.uname = 'fresh'; next(); } app.get("/", myMiddleware, function(req, res) { res.send(req.custom) }); 

ou vous pouvez le définir “globalement”:

 app.locals.uname = 'fresh'; // which is short for app.use(function(req, res, next){ res.locals.uname = "fresh"; next(); });