Open ibc opened 9 years ago
It may seem different from the outside, but in fact is very different in the internal structure it creates. We can look into the consequences of changing this as part of 5.0.
Actually it changes the outside behavior as well; right now app.all only responds to known verbs. This change will make it also respond to unknown verbs.
Well, Router#all()
already respond to unknown verbs, am I wrong?:
// create Router#VERB functions
methods.concat('all').forEach(function(method){
Router.prototype[method] = function (path) {
var route = this.route(path)
route[method].apply(route, slice.call(arguments, 1))
return this
}
})
Right, you are not wrong. But app.all doesn't, so it would be a change of behavior for app.all
Since app.xxxx()
is supposed to be a simple proxy to the main Router#xxxx()
, shouldn't the behavior be the same?
In 4.x, it is not a simple proxy. Perhaps it can be in 5.0, but the behavior change just needs to be evaluated first.
https://github.com/strongloop/express/blob/5.0/lib/application.js
Currently:
But the following simplified code does exactly the same (in fact
lib/Router/index.js
does it):