问题导出模块NodeJS

时间:2015-03-31 20:01:25

标签: javascript node.js

我有这个目录结构:

  • 应用程序/ 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.Bearer(以及oauth2)内容时,我得到{}。 我做错了什么?

感谢。

2 个答案:

答案 0 :(得分:3)

您的代码:

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

将导致:

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

因为passport.authenticatepassport.initialize都返回undefined

JSON.stringify省略了值undefined

  

[...]如果未定义,在转换过程中遇到函数或符号,则省略它(当它在对象中找到时)或者删除为null(当它在数组中找到时)。 ..]

答案 1 :(得分:-1)

它的值可能指向模块实例化。 你试试这个吗?

module.exports = {...};