有人知道如何在Express(Node.js)中动态重新路由呼叫吗?我的路线在某些时候有条件地发散,我想以某种方式改变“next()”参数。
例如,假设我有以下路线:
route1 = func1,func2,func3
route2 = func4,func5
我希望发生以下流程:
func1 => func2(如果是Android则重新路由到route2)=> func4 => func5
func1 => func2(如果是iOS,请不要重新路由)=> FUNC3
我考虑过res.redirect(/ route2),但我希望重新路由在内部发生,而不是客户端知道它。
感谢任何帮助,
谢谢!
亨利
答案 0 :(得分:0)
我最终使用async.waterfall以相当干净的方式解决了我的问题。对于那些遇到同样问题并希望重用其他路由使用的现有函数的人,可以使用async.waterfall并使用" cb"对于" next"参数如下:
conditionalReroute: function(req, res, next) {
if(someCondition) {
async.waterfall([
function(cb){route1.someFunction(req, res, cb); },
function(cb){ route2.someOtherFunction(req, res, cb); },
function(cb){ route1.soomeFunction2(req, res, cb); },
}
]);
} else {
next();
}
}