2016-10-19 3 views
1

Wie Middleware-Funktionen zu jedem Expressjs Route Funktionen hinzufügen? Die meisten Routenfunktionen, die sich als CRUD auf der Datenbank herausstellen, haben Standard-Vorher- und Nachher-Anweisungen - gibt es eine Möglichkeit, vorher und nachher für Routenfunktionen zu haben.expressjs Route Methoden vor und nach

app.route('/api/resources').all(projectsPolicy.isAllowed) 
    .get(resources.list) 
    .post(resources.create); 
+1

Sie meinen Sie wie 'app.use (projectsPolicy.isAllowed)' etc? – adeneo

+0

App.use Funktionen werden für alle Funktionen in Route aufgerufen, habe ich recht? Ich suche nach etwas, das für jede Route Funktion aufgerufen werden kann – npr

+0

Ich denke, das hängt von der Middleware ab, aber ich glaube, Sie können 'app.route ('/ api/resources', projectsPolicy.isAllowed) .get (...' In Express sind mehrere Funktionen erlaubt – adeneo

Antwort

2

Ich denke, es ist möglich, dies zu machen:

app.route('/api/resources').all(projectsPolicy.isAllowed) 
.get(before,resources.list,after) 
.post(before,resources.create,after); 

wo vor und nach Funktionen sind

+0

Danke - es ist möglich - app.get ('/ Beispiel/c', [cb0, cb1, cb2]); - Dokumentationsbeispiel (http://expressjs.com/en/guide /routing.html) – npr

1

Express unterstützt mehrere Rückrufe, wie in

app.get('/example/b', function (req, res, next) { 
    // do something here, like modify req or res, and then go on 

    next(); 
}, function (req, res) { 

    // get modified values here 

}); 

die auch sein könnte geschrieben als

app.route('/api/resources', projectsPolicy.isAllowed).get(... 

vorausgesetzt, die Middle isAllowed() Funktionsaufrufe next() usw.

Verwandte Themen