CommonJS模块 – 导出一个返回带参数的函数的函数

在这个例子中,有一个快速的中间件模块。

module.exports = function incrementCounter() { return function incrementCounter(req, res, next) { var app = req.rendrApp , count = app.get('session').count || 0; req.updateSession('count', count + 1); next(); }; }; 

你能不能用以下方法达到同样的效果?

 module.exports = function incrementCounter(req, res, next) { var app = req.rendrAp , count = app.get('session').count || 0; req.updateSession('count', count + 1); next(); }; 

我的问题是,为什么你会导出一个函数返回一个函数的参数? 对于前者有没有什么好处,我不知道?

Rendr使用Express风格的中间件。

按照惯例,Express中的第三方中间件不作为实际的中间件提供。 相反,它们是作为基于选项对象参数创build中间件的函数提供的。

但是,由于这里没有提供选项,因此省略。

但是,为了遵循周围的图书馆惯例,它需要是一个返回中间件function的工厂函数。 所以这就是为什么在这里包装。