kopia lustrzana https://github.com/c9/core
				
				
				
			adds a global handler to frontdoor: allow injection of global middlewares
							rodzic
							
								
									5bd78f5ecc
								
							
						
					
					
						commit
						4ffa8c0e8e
					
				|  | @ -15,6 +15,7 @@ module.exports = function Section(name, description, types) { | |||
|     var self = this; | ||||
|      | ||||
|     this.middlewares = []; | ||||
|     this.globals = []; | ||||
|     this.errorHandlers = []; | ||||
|     this.name = name; | ||||
| 
 | ||||
|  | @ -45,10 +46,22 @@ module.exports = function Section(name, description, types) { | |||
|         }); | ||||
|     }; | ||||
|      | ||||
|     /** | ||||
|      * Insert global middleware(s) for this section: The parent section is | ||||
|      * always an empty container that delegates to it's sub-sections, and | ||||
|      * executes all the middelwares for that section. | ||||
|      *  | ||||
|      * This method allows us to inject a "global" middleware that is inserted | ||||
|      * *after* decodeParams and *before* all other middelwares. | ||||
|      */ | ||||
|     this.global = function( middleware ){ | ||||
|         this.globals.push.apply(this.globals, flatten(middleware)); | ||||
|     }; | ||||
|      | ||||
|     this.use = function(middleware) { | ||||
|         this.middlewares.push.apply(this.middlewares, flatten(middleware)); | ||||
|     }; | ||||
|      | ||||
| 
 | ||||
|     this.error = function(middleware) { | ||||
|         this.errorHandlers.push.apply(this.errorHandlers, flatten(middleware)); | ||||
|     }; | ||||
|  | @ -112,7 +125,7 @@ module.exports = function Section(name, description, types) { | |||
|         var method = req.method.toLowerCase(); | ||||
|         if (methods.indexOf(method) == -1) | ||||
|             return next(); | ||||
|          | ||||
|              | ||||
|         var handler = this.match(req, path, method); | ||||
|         if (!handler) | ||||
|             return next(); | ||||
|  | @ -125,6 +138,9 @@ module.exports = function Section(name, description, types) { | |||
|             handler = handler.parent; | ||||
|         } | ||||
| 
 | ||||
|         if (this.globals.length) | ||||
|             middleware.splice.apply( middleware, [1, 0].concat( this.globals ) ); | ||||
| 
 | ||||
|         var i = 0; | ||||
|         function processNext() { | ||||
|             handler = middleware[i++]; | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Matthijs van Henten
						Matthijs van Henten