2017-01-22 6 views
0

ich eine Middleware haben, ich nenne es wie folgt aus:Access Express Anwendung von Middleware

app.use(example({optiona:'abc'})); 

ich die App aus dem Middleware-Funktion zugreifen möchten, und das andere tun app.use, etwa wie folgt:

module.exports = function (options){ 
    app.use(...); 
    return function(req, res, next) 
     next(); 
} 

weiß, dass ich die Möglichkeit, die App auf die Exporte zu passieren, aber ich will, es zu tun, ohne die Möglichkeit, es zu passieren, oder es als global gesetzt ..

+0

Sie haben die 'App' in [' req.app'] (https://devdocs.io/express/index#req.app) verfügbar – hjpotter92

+0

Ich möchte eine Middleware generell einstellen, nicht setzen (" App.use ") auf jede Anfrage – user3712353

+0

Bitte lesen Sie, wie Middleware funktioniert: http://expressjs.com/en/guide/using-middleware.html – hjpotter92

Antwort

0

Sie könnten versuchen, in Express Router als suchen opt ion (read all about it).

Im Wesentlichen konnten Sie Ihr erstes Stück halten das gleiche:

app.use(example({optiona:'abc'})); 

Und dann können Sie das folgende in der Funktion stattdessen tun:

var express = require("express"); 
var router = express.Router(); 

module.exports = function(options) { 
    // You can declare middleware specific to this router 
    router.use(...); 

    // You can declare routes specific to this router 
    router.get("/foo", ...); 
    router.all("/bar", ...); 

    // Then just return the router at the end 
    return router; 
} 

Router ermöglicht es Ihnen, „sub-Anwendungen einrichten "Mit ihren eigenen Routen/Middleware entsprechend.

Verwandte Themen