With Express / Connect I can set up an middleware function in either of the formats:
function(req, res, next) // first argument will be a request
Or
function(err, req, res, next) // first argument will be an error
Stepping back from Express, Connect, to basic JavaScript: I don't understand is how this is possible to have an optional first argument?
How can express know that my function will accept an err
object first? I thought to make this possible the structure would have to be like the following:
function(req, res, next, err)
Am I missing something basic here? Is it possible to query how many arguments a function is expecting?
The middleware function is passed to express, so the arguments
variable is not valid. although length
is correct... I think I have figured it out, would be good to have confirmation to whether this is the case. Example below:
var fn;
fn = function (one, two) {};
console.log(fn.length); // 2
fn = function (one, two, three) {};
console.log(fn.length); // 3