【发布时间】:2013-11-17 22:10:02
【问题描述】:
使用 Express js 编写一个简单的 NodeJS 网络服务。我以前是个蟒蛇人。
在 Django 或 Flask 等框架中,通常会看到 Python 装饰器用于仅在特定端点上实现来自插件的逻辑。可以在此处查看此模式的示例。
http://pythonhosted.org/Flask-Classy/#using-multiple-routes-for-a-single-view
我正在开发一个 Express 中间件,并且一切都与 app.use 3-parity 函数配合良好,但这仅与每个请求的逻辑执行有关。我想允许插件的最终用户仅在类似于上面源代码中概述的模式的特定端点上运行我的逻辑包(已经在单独的函数中)。
这些包装器的一些配置将在应用启动时传递。
最好的方法是什么?我应该使用将实际路由处理程序作为参数并在最后返回它的函数来模拟这种模式吗?像这样?
function pluginWrapper(endptFunc){
//plugin logic here
return endptFunc;
}
app.get('/endpt', pluginWrapper(function(req,res,next){
//endpt logic here
res.end()
}));
【问题讨论】: