繁体   English   中英

将值传递给Node js模块以用于Express路由

[英]Passing a value to a Node js module for Express routes

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

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

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

基于之前的stackoverflow帖子,我试过这个:

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

但是节点抛出了类型错误(对象不是函数)。

我是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)作为函数。 在此输入错误。

您需要将module.exports转换为函数以将参数传递给它。 像这样:

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

        somethingOther: function(req, res, next) {
            // ...
        };
    };
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM