将值传递给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) { // ... }; }; };