【发布时间】:2015-02-07 10:31:56
【问题描述】:
有没有办法查看当前中间件后面是否有函数。 即
router.get('/', function(req, res, next){
if(next){//always returns true
}
});
我有一个获取信息的功能,根据路径,信息将显示在表格或表单中,或者与其他数据组合。
我想要一个类似于
的功能function findAll(req, res, next){
db.findAll(function(err, docs){
if(next){
req.list = docs
return next();
}else{
res.render('table', {list:docs};
}
});
}
这样我就可以在两者中使用相同的功能
router.get('/', findAll, handleData);
或
router.get('/', findAll);
在任何一种情况下都会发送响应。有没有办法像 express 在 next() 处理程序中那样为路由器定义堆栈
例子
var layer = stack[idx++];
如果存在,它会捕获下一个函数,但我无法从我的函数访问此范围。有没有办法我可以自己定义图层。
这似乎对防止冗余代码非常有用
【问题讨论】:
-
按照设计,快递中的中间件不是总是有
next()吗?您还可以通过在闭包上下文中返回实际视图函数的函数来简洁地选择视图属性。 -
这就是我问它的设计方式,你可以随时调用 next 但是有没有办法找出运行的函数是否是该链中的最后一个
-
@paul 好主意
标签: javascript node.js express next