【发布时间】:2017-05-06 02:40:48
【问题描述】:
我的意思是,假设我有这个代码:
var ARouter = Router();
@Validate({
params: {
id: joi.number(),
x: joi.number()
}
})
@HttpGet('/foo/:id')
foo(req: Request, res: Response) {
res.send('in foo').end();
}
function HttpGet(path: string) {
return function (target: ApiController, propertyName: string, descriptor: TypedPropertyDescriptor<RequestHandler>) {
ARouter.get(path, descriptor.value);
}
}
我这里有一个路由器、装饰器和一个 foo 函数。 HttpGet 装饰器创建一个路径,路径为 'foo/:id' 和 foo 作为其在 ARouter 中的唯一处理程序。
我希望@validate 装饰器将另一个处理程序(特定函数中间件,将在 foo 之前调用)添加到 foo 路由处理程序堆栈。 例如就像是 router.get('/foo/:id/, validationFunction, foo)。
有没有办法在路由器的 foo 路由中动态添加处理程序?
谢谢!
【问题讨论】:
标签: node.js express typescript