访问模块中的对象

时间:2015-08-03 07:30:37

标签: javascript node.js module

我正在做一些将json数据解析为对象的逻辑,我希望在其他模块可以使用的某些模块特定对象之外公开, 我尝试以下哪些不起作用,还有其他想法吗?

var jsonObject;

module.exports = {

    parse: function () {
    //here I do the parsing
    ....

    jsonObject = JSON.parse(res)

    ,
    //here I want to expose it outside
    jsonObj:jsonObject
    }

2 个答案:

答案 0 :(得分:2)

如果您尝试公开整个对象,则可以像编写任何其他JavaScript对象一样构建它,然后在最后使用module.exports:

MyObj = function(){
   this.somevar = 1234;
   this.subfunction1 = function(){};
}
module.exports = MyObj;

如果您只想公开某些功能,则不需要像对象那样构建它,然后您可以导出各个功能:

var somevar = 1234;
subfunction1 = function(){};
nonExposedFunction = function(){};
module.exports = {
   subfunction1:subfunction1,
   somevar:somevar
};

答案 1 :(得分:1)

您只需将JSON.parse的结果分配给this.jsonObj

module.exports = {
    parse: function (res) {
        this.jsonObj = JSON.parse(res);
    }
};

使用this.jsonObj将JSON对象暴露给外部,您可以这样使用您的模块:

var parser = require('./parser.js'),
    jsonString = // You JSON string to parse...

parser.parse(jsonString);
console.log(parser.jsonObj);