使用 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()
}));