将值传递给Express路由的Node js模块

我想将Express环境传递给Express的路由模块。 我想closuresExpress是否正在开发或生产模式下运行。 为此,我猜我需要通过app.settings.env以某种方式路由模块。

我的路由模块为每个路由导出一个函数。 所以:

app.get('/search', web.search); 

基于之前的一个计算器,我试过这个:

 var web = require('./web')({'mode': app.settings.env}); 

但是节点抛出一个types错误(对象不是函数)。

我是Node和Express的新手。 我可以将价值传递给快速路线吗?如果是,如何?

如果你web.js看起来像这样:

 module.exports.search = function(req, res, next) { // ... }; module.exports.somethingOther = function(req, res, next) { // ... }; 

然后通过呼叫

 var web = require('./web')({'mode': app.settings.env}); 

你尝试使用object(module.exports)作为函数。 在此input错误。

你需要将module.exports转换为函数来传递参数。 喜欢这个:

 module.exports = function (env) { return { // env available here search: function(req, res, next) { // ... }, somethingOther: function(req, res, next) { // ... }; }; };