I have a chain of \"route specific middleware\" for this route, like so:
var express = require(\'express\');
var server = express();
var mw1 = functi
You can call next( 'route' )
, as said on the express api reference, application routing section:
Multiple callbacks may be given, all are treated equally, and behave just like middleware, with the one exception that these callbacks may invoke
next('route')
to bypass the remaining route callback(s).
var express = require('express')
, app = express()
;
// keep an eye on the function names
app.post( '/some/path', middleware1, middleware2, function route1( req, res, next ) {
// write response
});
app.all( '*', function route2( req, res, next ) {
// do something like handle a 404 request
});
app.use(function errorHandler( err, req, res, next ) {
// handle error
});
function middleware1( req, res, next ) {
// ...
if ( !success ) {
// bypasses middleware2 and route1, route2 will be called
return next( 'route' );
}
// calls middleware2
next();
}
// intentionally similar to middleware1 to keep things clear
function middleware2( req, res, next ) {
if ( !success ) {
// bypasses route1 and route2
// errorHandler will be called with the error
return next( Error( 'middleware 2 failed' ) );
}
// calls route1
next();
}