Передача значения в модуль Node js для экспресс-маршрутов - PullRequest
5 голосов
/ 14 марта 2012

Я хочу передать среду для Express в модуль маршрутизации для Express.Я хочу отключить, работает ли Express в разработке или в производственном режиме.Для этого, я думаю, мне нужно как-то передать app.settings.env в модуль маршрутизации.

Мой модуль маршрутизации экспортирует функцию для каждого маршрута.Итак:

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

Основываясь на предыдущем сообщении stackoverflow, я пробовал это:

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

Но узел выдает ошибку типа (объект не является функцией).

Я новичок в Узле и Экспрессе.Могу ли я передать значение в экспресс-маршрут, и если да, то как?

1 Ответ

8 голосов
/ 15 марта 2012

Если ваш web.js выглядит следующим образом:

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

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

, то, вызывая

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

, вы пытаетесь использовать объект (module.exports) в качестве функции.Введите здесь error.

Вам необходимо преобразовать module.exports в функцию, чтобы передать ей параметры.Как это:

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

        somethingOther: function(req, res, next) {
            // ...
        };
    };
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...