Глобальная переменная в app.js доступна в маршрутах? - PullRequest
74 голосов
/ 19 марта 2012

Как установить переменную в app.js и сделать ее доступной во всех маршрутах, по крайней мере в файле index.js, расположенном в маршрутах.используя экспресс-фреймворк и node.js

Ответы [ 12 ]

0 голосов
/ 14 марта 2017

Я использовал app.all

Метод app.all () полезен для отображения «глобальной» логики для конкретных префиксы пути или произвольные совпадения.

В моем случае я использую confit для управления конфигурацией,

app.all('*', function (req, res, next) {
    confit(basedir).create(function (err, config) {
        if (err) {
            throw new Error('Failed to load configuration ', err);
        }
        app.set('config', config);
        next();
    });
});

На маршрутах вы просто делаете req.app.get('config').get('cookie');

0 голосов
/ 21 мая 2013

Ответ Джона Гордона был первым из десятков полу-объясненных / задокументированных ответов, которые я попробовал на многих, многих сайтах, которые действительно сработали. Спасибо, мистер Гордон. Извините, у меня нет баллов, чтобы отметить ваш ответ.

Я хотел бы добавить, для других новичков в разбиении узла-маршрута-файла, что анонимная функция для 'index' - это то, что вы увидите чаще, поэтому, используя пример Джона для main.js, функционально эквивалентный код, который обычно можно найти:

app.get('/',(req, res) {
    res.render('index', { title: 'Express' });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...