is there a way to see if there is a function after the current middleware. ie
router.get('/', function(req, res, next){
if(next){//always returns true
}
});
I have a function to fetch the information and depending on the route that information will either be displayed in a table or a form or it will be combined with other data.
I wanted to have a function similar to
function findAll(req, res, next){
db.findAll(function(err, docs){
if(next){
req.list = docs
return next();
}else{
res.render('table', {list:docs};
}
});
}
that way I could use the same function in either
router.get('/', findAll, handleData);
or
router.get('/', findAll);
and in either case a response will be sent. is there a way i can define the stack for the router like express does in the next() handler
example
var layer = stack[idx++];
this catches the next function if it exists but I cannot access this scope from my function. is there a way i can define the layers myself.
This seems like it could be very usefull in preventing redundant code
thanks to paul i was able to work around the next issue kind of. currently this working
function findAll(callback){
return function send(req, res){
db.findAll(function(err, docs){
if(callback){
req.docs = docs
return callback(req, res, next());
}
res.render('table', {docs:docs});
});
}
}
function handleData(req, res, next){
res.send(req.docs);
}
will work with
router.get('/', findAll());
or
router.get('/', findAll(handleData));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With