【发布时间】:2016-10-10 12:39:37
【问题描述】:
基本上我想代替这个...
app.get(routes.test, function(req, res, next){
actualRouteHandler(req, res, next) // Always returns a promise or throws.
.catch(function(err) {
next(err);
});
});
有这个:
app.get(routes.test, catchWrap(actualRouteHandler));
或类似的东西,我尝试过处理 fn.apply 之类的东西,但我找不到向实际路由处理程序传递正确参数(req、res、next)并且仍然具有该功能的方法。我需要返回一个函数或类似的东西吗?
编辑:我认为可能存在执行此操作的库,但在这段代码中我们无法访问实际的 express 应用程序。
【问题讨论】:
-
我的印象是 app.use 是用于中间件的,我基本上只是想将每个控制器的处理程序包装在一个小函数中,然后将任何捕获的异常传递给我的实际错误处理中间件。
-
比如说我在问如何使用事件处理程序来做到这一点,你知道怎么做吗?例如
el.addEventListener('click', handleFunction)但是然后将handleFunction 包装在另一个函数中,该函数说...在另一个函数周围添加一个try/catch 块,或者添加一些其他功能。不一定要跟express有关,就是不知道怎么用这种方式给函数传其他参数。 -
不,我们可以随意添加中间件和路由,但不能说...使用 Express Promise Router (npmjs.com/package/express-promise-router),因为我们无法访问实际的 express 应用程序,我们只能建立在它的基础上,这远非理想。
-
哦,酷,我可以回答这个问题! :-)
标签: javascript node.js function express apply