访问模块中的对象

Access to object in module

本文关键字:对象 模块 访问      更新时间:2023-09-26

我正在做一些逻辑解析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
    }

如果您试图公开整个对象,您可以像构建任何其他JavaScript对象一样构建它,然后使用模块。最后导出:

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

如果你只是想公开某些函数,你不需要像对象一样构建它,然后你可以导出单个函数:

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

您只需将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);