2015-03-31 3 views
0

У меня есть эта структура каталогов:Выпуск экспорта модуля NodeJS

  • приложение/router.js
  • приложение/oauth2-дом-клиент/OAuth2-client.js

и источники:

приложение/oauth2-дом-клиент/oauth2-client.js

//SOME CODE 

    exports.Bearer = { 

      authenticate : passport.authenticate('bearer', { session : false }), 

      initialize : passport.initialize() 

      // session : passport.session() 
    }; 

приложение/router.js

var oauth2 = require('./oauth2-home-client/oauth2-client'); 

console.log(JSON.stringify(oauth2.Bearer)); 

//SOME CODE 

При печати oauth2.Beareroauth2, тоже) содержание, я получаю {}. Что я делаю неправильно?

Спасибо.

+0

Где находится адрес 'router.js'? –

+0

В 'app /', тот же каталог, что папка 'oauth2-home-client'. Я уточнил свой вопрос для ясности. –

+0

Попробуйте это 'var oauth2 = require ('oauth2-home-client/oauth2-client');' вместо 'var oauth2 = require ('./ oauth2-home-client/oauth2-client');' – IvanJ

ответ

3

Ваш код:

exports.Bearer = { 
    authenticate : passport.authenticate('bearer', { session : false }), 
    initialize : passport.initialize() 
    // session : passport.session() 
}; 

будет приводить:

exports.Bearer = { 
    authenticate :undefined, 
    initialize : undefined 
}; 

, потому что оба passport.authenticate и passport.initialize возвращения undefined.

И ключи, имеющие значение undefined, опущены JSON.stringify.

[...] Если не определено, функция или символ встречается во время преобразования он либо опущен (когда он находится в объекте) или цензуре в нуль (когда он находится в массиве) . [...]

-1

Его значение может указывать на экземпляр модуля. Вы попробовали это?

module.exports = {...};