我正在做一些将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
}
答案 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);