2016-07-17 9 views
0

У меня есть файл express.js, который требует config.js, который загружает development.js. Теперь я хочу использовать секрет в качестве переменной в объекте сессии express-session. Я дам вам быстрый отрыв от того, как я установил свой код до сих пор.Как использовать переменную в качестве секретного ключа в объекте сеанса экспресс-сессии

Config папки

Env 

    -- development.js 

- config.js

- express.js

Development.js

module.exports = function(){ 
sessionSecret: 'developmentSessionSecret' 
} 

config.js

module.exports = require('./env/' + process.env.NODE_ENV + '.js'); 

** Express.js **

var config = require('./config'), 
session = require('express-session'); 
app.use(session({ 
    saveUninitialized: true, 
    resave: true, 
    secret: config.sessionSecret 
})); 

Проблема в том, что console.log (config.sessionSecret) является неопределенным. Почему это не работает и какой будет правильный способ настройки?

+0

module.exports = require ('./ env /' + process.env.NODE_ENV + '.js')(); –

ответ

0

Ваш development.js экспортирует функцию-конструктор, которую вы никогда не вызываете (и она тоже ничего не возвращает).

на основе синтаксиса, который вы использовали в звонивших, вы, вероятно, означало для development.js быть таким:

module.exports = { 
    sessionSecret: 'developmentSessionSecret' 
} 

где он только экспортирует статический объект, который может быть использован непосредственно в остальной части кода.